This seems to be a common use case as we are trying to implement a similar thing but in a subflow. Unfortunately it wont work as there appears to be a bug in subflows with timers as we modelled a custom java class with a decision node and a process variable to hold the retries. It all works fine until we try and add a timer to make a due transition back to the java class and then it falls over with constraint violation. We are using latest trunk 4.3 as 4.2 breaks subflows with other errors.
Would be interested to know if anyone has got this to work (especially in a subflow) in 4.2 or 4.3 !!.