Destroying and re-creating ShowBase

I’m not quite sure what you are after, but maybe this helps you in a way:
[userExit without kill the python interpreter)

The method there basically creates a subprocess and waits for its return code, which you can control. Depending on the RC you can actually do whatever you want, restarting the program included.

On the other hand, if you only want to hide the appliocation window and “pause” panda, that works fine from within the app itself. David gave you some very good points for that already.