My idea, in a middle of implementing, and might be bad, but I am trying to build a game state manager. Basically I have a stack of game states, such as Main menu -> World menu -> Game -> Options. Each state is just put on top of each other, like in general way of doing game states. Then I pass the so called global events only to the top most state, like handling esc-press only the top most component would have access to it.
The UI I was thinking of handing in a way where I have only one UI, but each state has its own UIElement, and disenable on state changes.
Scenes I was thinking of doing the same way, where each state has its own node-component that is set onto root scene, and they only control the state of their own node. When state is changed then the node might be disenabled. I guess it depends on the game, but for what I was planning there is no need to update the state of the game when being in menus.
Most likely there are a lot of flaws in this, but to my understanding this is a common way of handling multiple states.