What does `playdate.stop` actually do?

I’ve been pondering this further. I’m still quite curious to know whether there’s any way to hook into the game loop while waiting/stopped apart from interrupts, but perhaps that’s the wrong way to think about it.

If I understand the docs correctly, all wait and stop do is suspend calls to playdate.update. Initially I’d assumed that it would function more like the system menu button which also stops clocks, but it doesn’t look like it. If all it does is avoid calls to update, it would be just as easy to temporarily swap out the update function for one which manages the paused state, during which one could still perform drawing and animation. I’d love to be able to mimic the effect of stopping timers entirely, but alas I can’t see how given that it’s not possible to set the currentTime on a timer.

In other words, swapping out the update function get one as close as calling playdate.stop to effectively pausing the game, and still enables animation above the paused game, but doesn’t offer any answer for ensuring timers are properly paused. Does anyone have any suggestions for how to effectively pause timers globally akin to the system menu button?