I can try to walk you through what should be done, but I can't test this right now to give you a perfect answer.
Problems with pause not showing and the game not restoring correctly after pauses exits can be solved by adding specific code to the HaltEmu and RestoreEmu labels in the specific module.
The first thing you need to do is to answer if pause works when the emulator is run in windowed mode or bezel is enabled?
If the answer is yes, you need to search on your module for the haltEmu and RestoreEmu lables and add an special behavior to load pause and restore the emulator only when fullscreen is enabled.
If your only problem is happening when restoring the emulator only, you could try to add for example an win activation line to the restoreEmu Label:
Code:
RestoreEmu:
;keep whatever code is not related with pause that is already on the module
If (fullscreen = "True")
WinActivate, ahk_id %emulatorID%
Return
If the pause menu is not showing in the first place, maybe the emulator is being draw above it and you need to either minimize the emu or toggle its fullscreen status to make the pause menu to show. For example:
Code:
HaltEmu:
;keep whatever code is not related with pause that is already on the module
If (fullscreen = "True")
KeyUtils.Send("!{ENTER}") ;emu exits fullscreen mode
Return
RestoreEmu:
;keep whatever code is not related with pause that is already on the module
If (fullscreen = "True")
KeyUtils.Send("!{Enter}") ;emu enter fullscreen mode
Return
As I said before, I cannot give you a perfect answer (I don't have any game to test on dolphin), but if you search for those labels on other modules, you will see numerous examples of what can be done to solve this issue.
Reading the wiki about how to add pause support is also a very good source of information on how to solve those issues.