Using an Iframe is definitely not an option. It add perfs issues, and a ton of complexity.
Adding tweens to a global timeline on the fly, removing them, pausing them, timescaling them etc.. leads to bugs.
That is definitely an advanced use-case. But if I'd like my game to stop running while displaying some UI MENU in top of it, I usually use the FPS ticker as RAF, and set the FPS ticker to 0 ( suspend all tween, suspend all delayed call etc.. ). That is pretty handy, that is just a one-line instruction to pause the entire game.
But because the UI is also using GSAP to animate things, the whole game is suspended then.
I'm not working on that UI part though, but sharing a same gsap instance in this case really leads to problem as multiple developers are working on different parts of the project. We just cannot set independant global gsap settings / framerate etc..
I guess we'll just switch to another animation library !
Many thanks