One "workaround", if you can call it that, is to ssh in and run "sudo systemctl restart gdm". This still leaves some of the previous processes running, but there are some fresh ones and a fresh gdm to log in with again.
I believe I have the same issue, right down to Wayland sessions (which I
haven't used before since it's not the default) being unaffected.