That's a good point. It's easy to fix here, but in a more global sense there's no protection against buffer overflow with this macro approach (or the prior one for that matter) when TICKS2MS is other than the identity. Suggestions?

My personal feeling is that here we can safely ignore it. lastLoopTime should never be larger than lastSysTime so if it is we have a serious bug no matter what. If it isn't, then it's a representation of real-world time, so it will only overflow at 2^64 seconds.