Hi Rob, PL,
1)
There is an "optimization" in the process engine which does the following:
When creating a new timer instance, it will check whether the timer will fire before the job executor executes the next acquisition query. If true, it will immediately lock the job and add it to the job queue.
The non-interrupting timer will "chain" executions in the sense that when it fires, it will delete the job for the current timer execution and then create a new job for the next execution, calculating the date for that next execution. If the next execution date is < waitTimeInMillis, it will be locked and executed immediately.
In general, this leads to the behavior that the non-interrupting timer is not executed "every five seconds" but seemingly chained "in an endless loop" (if no upper bound / number of max repetitions is provided).
In your case, I assume that both timers (interrupting + non-interrupting fired at the same time)
2)
I will look into the strange behavior in combination with the Terminate End Event.