Quote:
I was not objecting to .secs being zero, I was saying that .secs on the final execution of a timer should always be zero.

If .secs is zero, this could mean that it is a /timer N 0 call and is going to execute at the next timer event, which will be in zero seconds - in other words, immediately. It does not mean that it will not trigger again. So a zero value cannot be used as indication of final execution. The .secs property is not meant to be used for that.

Quote:
In this example, both of foo's executions are triggered by -e, and for the final foo execution it doesn't show the original 999 seconds or the actual 0 seconds. Instead timerfoo shows the same externally viewable countdown value seen by timerbar, something it's not doing when -e is not used.

It does not show 999 because millisecond timers are not precise - the value depends on how much time has passed since the last trigger. There is also the issue of rounding which will have a different effect on second vs millisecond values.