I found vterm[1] to be pretty reliable for any kind of "advanced" terminal use. Also much faster when dealing with large amounts of output.
EXWM does indeed block when emacs is busy. I haven't found it a problem with my usage, but I imagine it could be annoying. Killing emacs ends the X session of course, as it's the window manager, but I rarely need to restart emacs. Useful trick: If emacs really is stuck and Ctrl-G isn't working, switching to a virtual terminal (eg. Ctrl-Alt-F2) and running `killall -SIGUSR2 emacs` will usually make it snap out of it. (I haven't had to do that for months, though.)
If killing Emacs ends the session, that must have a different cause. Killing the WM doesn't usually end the session.
https://tech.toryanderson.com/2020/10/19/emacs-in-emacs-a-tr...
Seems weird that no one would have built a multi-threaded emacs by now.
- a good terminal mode so I don't need to switch to another terminal, the builtin terminals either lag badly after 10K lines of input or render/behave strangely when used with ncurses programs
- pervasive, non-blocking async, this has gotten better over time especially with language servers being on separate processes, however many common tasks block usage completely, such as upgrading/installing packages
The reason I bring this up is because imagine those points but applied to your window manager. Since Emacs is not multi-threaded, if something inside Emacs freezes your whole X session will become in blocked case you run Exwm. For the same reason, it is a bit more responsive.