You can leverage the due-date of a task. This can be set declaratively in the BPMN but also updated from our API. When the user want's to postpone the task, the due date is altered.
In order to remove the task from the "task list", you can either unassign the task (and involve the original assignee in the task using your custom identity-link type "postponer". Another option is to have a special variable on the task, which indicates it's postponed or not. In you're task-list API-call you do, you can include a taskVariableValueEquals(…) to only include non-postponed tasks, for example. You can also leverage the "dueBefore()" or "dueAfter()" on the TaskQuery to filter what tasks pop up in a user's inbox.