Perhaps having this logic inside work item handler that can take this complexity - so you will have a custom work item handler implementation that acts like a wrapper for other work item handlers (service task human task, etc) and can perform exception handling if such a need arise. Wdyt?
HTH