After thinking about it a little harder:
We can of course also use action handlers for this and tie them to specific events. Since our task has a few more states, we can add some custom events.
This would mean we need to add the runtime variables in the task instance. Typically these should be transparent and can be removed after the business method has executed. This can be done in a custom taskController or just by removing them in the action handler.
So no custom task node needed after all...