It seems the problem was Wayland + gnome-shell specific because gnome-shell is the display server and effectively single threaded. gnome-shell deadlocks on itself if it spawns a client synchronously and expects to wait for that client to finish. The client never finishes because the server isn't replying while it's waiting for the client to finish.
It seems the problem was Wayland + gnome-shell specific because gnome-shell is the display server and effectively single threaded. gnome-shell deadlocks on itself if it spawns a client synchronously and expects to wait for that client to finish. The client never finishes because the server isn't replying while it's waiting for the client to finish.