why don't you add a transition to the end state ?
As I understand it impossible add new transition whie I am execute Processinstance or I am wrong ?
I am know that necessary stop execution at runtime only.
So all this was created for preventing looping : what I do : I add to each transition EVENT (and action of course) and counting iteration for each transitions.
If for ex. for specified transition max iterations reached (now it is 50 iterations) - I must end execution.
I do it and it worked !!!!