A busy event loop will fire timers late

Think about how an event loop timer implementation works and it should be possible to understand why.

The same fundamental principles apply to how Microsoft’s implementation of timers is done in their API:

https://docs.microsoft.com/en-us/windows/win32/winmsg/about-timers

Another way of thinking of this is a busy person - they are likely to be late on scheduled tasks.