It is an interesting requirement you have there, I have similar requirement too.

I have not try to implement this, but I think it should be better if we provide a re-entry point in the process such as using signal event or even using ad hoc process where we can signal which task node that we want to do at any point of the process.

Maybe using this approach we can avoid interacting with the JBPM Database directly and let the engine handle all the states and data.

Or have you find a solution for this? If so, I would like to hear how you solve this since I have similar requirement...