Try this test code,
Everything is how I expected.
ProcesSystem event call callback function(myTimerFunc), and after it is finished, then return.
As far as myTimerFunc(2 instance) finishes without calling ProcesSystem everything is in order.
Otherwise get in to call loop and stack overflow.
From log is also see, that tihis not occur for Async Timer.
LogFrom My PC:
****1,myAsyncTimer >start
--------DelayWithoutBlocking >start
++++1,myTimerProc >start
--------DelayWithoutBlocking >start
++++2, myTimerProc >ReEnter - exit imediately
++++2, myTimerProc >ReEnter - exit imediately
++++2, myTimerProc >ReEnter - exit imediately
++++2, myTimerProc >ReEnter - exit imediately
++++2, myTimerProc >ReEnter - exit imediately
++++2, myTimerProc >ReEnter - exit imediately
++++2, myTimerProc >ReEnter - exit imediately
++++2, myTimerProc >ReEnter - exit imediately
++++2, myTimerProc >ReEnter - exit imediately
--------DelayWithoutBlocking <stop
++++1,myTimerProc <stop
//return from TimerProc ++++1,myTimerProc >start
//Next TimerProc--------DelayWithoutBlocking >start
//start in tTimerProc--------DelayWithoutBlocking <stop
//stop in AsyncTimer****1,myAsyncTimer <stop
//return from AsyncTimer ****1,myAsyncTimer >start
//nextAsyncTimer--------DelayWithoutBlocking >start
++++2, myTimerProc >ReEnter - exit imediately
++++2, myTimerProc >ReEnter - exit imediately