Just came across this as I had a macro launch 50 times triggered by window name change, and even though there was a semaphore, everything was canceled by the KM engine with this in the log.
More than 50 simultaneous macros - aborting everything
So now, thanks to your succinct and patient explanation, my semaphore has a timeout as well.
And thanks to all others who contributed here.
Have a wonderful day.