I spent a morning switching away from a running H5 game and timing how long it takes to feel usable again. Not to farm a score, but to see whether the page survives being backgrounded on a phone with 3 GB of RAM and a dozen other tabs.
Three things break, in this order. Timers slow down: mobile Chrome clamps setTimeout in a hidden tab to roughly once a minute. Then the animation loop stops, so the state the code believes in drifts away from the frame the player last saw. Finally, if the tab stays hidden long enough, the page can be discarded and reloaded from cache.
The last case is the one players notice. A round that looked paused restarts, and whatever lived only in memory is gone. 555zk comes back on the screen I left, which is what I want from a page I reopen by habit. luckyrp pauses instead of letting its clock run on, so nothing is lost while I am answering a message in another app.
Storage is the other half. qtgame apk has kept its saved state through three forced closes, so progress does not depend on the tab staying alive. 8qr apk is slower to resume but consistent, and rr777 reloads rather than resuming, a fair trade when the reload is quick.
The fix is small. Listen for visibilitychange, write the round state to storage before the tab hides, and rebuild from that state on pageshow instead of assuming the DOM is still there. Test it by backgrounding the tab for two minutes, not two seconds.
None of this is about winning anything. It is about not losing a round to a phone call. If you build for mobile, switch apps mid-session and watch what comes back.