Add pledge tracking per user to a set of tasks. A user can pledge to do a task or mark a task as completed, or just skip that task. The pledging status is stored per user for each task.
The tasks are displayed in a view. To add pledge status, add the "Task Pledge" field to the view. When the view is displayed, a set of radio buttons will be shown in each row. The user can change the settings and click Save.
This module could be generalized into storing arbitrary per-user data per node.