It seems a wide majority of users use this "sub-app technique" for pausing but since using MMF2 I have never used Sub-App to pause any of my engines. I just throw the core coding for the engine into a group called 'Game' and have another group named 'Paused'. When the game is paused deactivate the GAME group and enable the PAUSE group, vice versa for unpause. You can quite easily create a top layer that contains all your images/components for the pause screen and just hide/show it between those two groups.
I do this slightly different.
I have a Flag, representing if the game is paused or not.
And i simply include 'is Flag ON' in ANY kind of Event/ Function i want to be pauseable.
This way i can easily Tag or Untag any function in the Event Editor without having to rearrange things or change the structure of my code.