Tapping to reveal the controls showed them permanently — they never auto-hid
after the inactivity timeout (CONTROLS_CONSTANTS.TIMEOUT). Root cause:
useControlsTimeout was called with a hardcoded disabled: true (introduced in
the KSPlayer work in #1266), so the auto-hide timer was never armed.
Simply removing that override re-introduced a regression on iOS: the timer
fired while the settings popover was open, dismissing it mid-interaction
(subtitle / audio / speed selection), because on iOS the popover lives inside
the controls and closes when they fade out.
Surface the popover's open state through a small ControlsContext (rather than
prop drilling through HeaderControls) and feed it to useControlsTimeout's
disabled flag, so auto-hide pauses while the menu is open and re-arms once it
closes. Android's menu is a separate global bottom-sheet modal, unaffected.
Fixes#1243. Regression from #1266. Depends on #1621.