The menu state machine advances via onChapter events when a video crosses a chapter marker, which we never emitted - so the menu never opened naturally. Track chapter boundaries from the playlist markers and fire onChapter. Also change M to invoke the onMenu dispatcher (returns to the menu video) rather than drawing menu items directly.