v2: Made a simpler fix and added a few tests.
Fwiw I think the behavior around session presentation end is still not completely correct, but this should fix the crash with that game at least.
Extending the tests more shows that other commands such as Pause also should preempt the presentation end, interrupting it, and that it should be resumed whenever Start is called again. Matching the event sequence precisely will require more changes though.
There's also some very rare race condition when commands are called in sequence, where the presentation never ends after some Start/Stop/Pause/Start sequence. I'm not completely sure where it's coming from.