Hiding the cursor requires a timer. This is inconvenient for the video output thread, especially considering #17700. The timer should be run by the window provider, all of which already have an event loop of their own.
And the window provider needs to keep showing the cursor automatically when the cursor moves. That is easy, since the window provider is already catching and dispatching those events from the windowing system.