Ahh, finally I have discovered a workaround. This command, executed in a TTY (which I can access with ctrl-alt-F5 or similar), seems to gently restart gnome-shell and give me everything back with my applications all still running:
dbus-send --type=method_call --print-reply --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'global.reexec_self()'
Ahh, finally I have discovered a workaround. This command, executed in a TTY (which I can access with ctrl-alt-F5 or similar), seems to gently restart gnome-shell and give me everything back with my applications all still running:
dbus-send --type=method_call --print-reply --dest= org.gnome. Shell /org/gnome/Shell org.gnome. Shell.Eval string: 'global. reexec_ self()'