Game engines do not own their main loop anymore either. A lot of host platforms are event based now, including ios, macos, android, web, and to a lesser extend windows.
This means you tell the host ‘call this function every X milliseconds’. This also means you do not have full control of a main loop and you get event calls.
It is moving more towards event based like in web:) it prevents lockups