That's an interesting discovery. I would've never thought of trying a time interval of zero.
The attached XDO (TestTimer) is another simple timer that runs one hundred times using an interval of zero. I wanted to learn what is the actual time interval since it obviously cannot be zero. You suggested it is approximately 0.1 seconds (i.e. 5 intervals runs for 0.5 seconds).
I ran TestTimer three times and put Debugview's results into Excel. I calculated the actual time intervals and graphed all three trials in a single scatter chart (see attached image).
You can see that many of the interval values are clustered around a value of 0.11 seconds and supports your results. However, what is interesting is that after 50 repetitions the interval values tend to vary (as low as 0 and as high as 0.23 seconds). In fact, the first ten repetitions are not as consistent as those between 10 and 50.
This is all beginning to feel like quantum physics where we can only talk about an electron's position in terms of probabilities! A rough rule-of thumb appears to be that a time interval of zero is interpreted as approximately 0.1 seconds (most of the time).
Last of all, Premise offers another kind of timer in the way of a
DelayMacro. A SimpleTimer does not interrupt the flow of program execution and runs in parallel to the main script. The main script can create a timer and then immediately proceed to do other things. When the SimpleTimer expires, it runs its payload.
In contrast, a DelayMacro immediately pauses the flow of program execution. It behaves like VBscript's "Sleep" command and can be defined in milliseconds. The attached example contains a sequence of Script and Delay macros in
Default > Macros > MacroFolder. Run the ScriptMacro located in
Default > Macros > MacroFolder2. It simple runs all of the macros, in sequence, that are located in MacroFolder.
Debugview will show the results and you'll see a 250 ms delay (+/- 5%) between each ScriptMacro.