Personally, while living in Emacs (EXWM), I still can't live on eshell, the issue is "the terminal", too many commands are simply uncomfortable to use in eshell while run smoothly in a real terminal.
I've also tried some new shells, the one I last more is xonsh, but generally I came back to zsh even if I use in general much less the shell than before thanks to Emacs, the 2D shell.
Emacs completion also it's very nice for text, but slower than tab-cycle in zsh as well and for quick commands that's matter.
I agree with the assessment about eshell. I use eshell for one thing only—quick terminal sessions in the same directory as the file I'm editing.
Have you tried Eat[0]? It's a reasonably fast terminal emulator that integrates with Eshell so that all commands run in Eshell have full terminal emulation (but they're still run in the original Eshell buffer, which makes it better than `eshell-visual-commands'). I haven't had any terminal emulation problems since switching to it.
[0]: https://codeberg.org/akib/emacs-eat
With regards to completion, I use corfu, which gives me nice inline popups. I use the bash-completion package, so I don't have issues with programs that don't provide Eshell completions (which are basically all of them).