And one thing to add, there is a corner case, when a timer callback is run as a result of a timer overflow and the callback was supposed to run before that overflow, when the callbacks are called with the scheduler disabled, which means blocking isn’t just not advised, but actually improper and can lock the system.
This is a small enough corner, I sometimes wonder if that result is a bug or if timer callbacks are really supposed to be specified as CAN NOT BLOCK, not just SHOULD NOT BLOCK.