not really understand what you're trying to achieve. Could you please give an example.
Suppose you have such a flow:
Start -> A(1) -> B -> A(2) -> C -> A(3)-> End
If an abort is requested while process is running workitems B or C the method abortWorkItem of these methods knows how to roll-back what have been done in the process. Task A is used three times, and I don't know how to rollback process, because it depends by when abort is requested, i.e. if ana bort is requested when process is in A(2) the abortWorkItem method of C-workItemHnadler is good for A(2) too.
In other words I need to suspend abort request until process reachs a step such as B or C.
alright, then why you split that logic across work items? Would it be better to use boundary events or even subprocess that would listen for given type of errors and then handle it? That way you could have event subprocess to handle different types of errors instead of work item B and C that do special logic to rollback.