I was playing with the various shell options - sorry, trying to learn eshell - this evening. While playing with eshell I learned about the second, fully fledged terminal emulator ansi-term.
Most of my machines here run FreeBSD, as does the machine that hosts this blog. FreeBSD's terminal emulators don't recognise eterm-color as a valid terminal type, plus FreeBSD uses termcap and not terminfo, so the supplied terminfo file was of limited use.
As usual, StackOverflow came to the rescue with this answer. After adding the termcap entry and rebuilding termcap.db, ansi-term is now recognized as a full featured terminal emulator, running inside emacs. So now I can do this:
That's midnight commander running on one of my FreeBSD servers, inside GNU Emacs on my Mac. Job done.
And yes, ESC-0 is passed through correctly so I can actually exit mc.