It should be possible to store local variables on a task, without the variables ending up in the process/execution variables:
Add API method to add variables to a task: addTaskVariables(taskId, variables) and addTaskVariable(taskId, name, value)
Add API method the get variables for a certain task
runtimeService.getVariables(executionId) shouldn't return the local set variables for a task in that execution.
A HistoricTask should be introduced, containing the task info and reference to the values of the local variables when the task was completed. (history level=full)
ExpressionManager EL resolver should be extended to 'sense' if the execution is waiting in a task so task-local variables should be resolved as well.