I always thought the C-o subshell needed a status bar or something. Not once did I find myself launching mc again because I forgot it was already running. Luckily it warns you when launched from the subshell.
Another option might be to bind F10 to start mc, so that it acts as a toggle whether in mc or in a non-mc shell. You'd need to wrap a zle widget in zsh, or add a '$if Bash' guard to your inputrc with bash.