Multishell enables you to get to the input prompt in the shell you want with as few keystrokes as possible.
One keybinding, unmodified, gets you to the your current default shell, if not in a shell, or to the input prompt of the current shell, if you're in one.
Use the universal argument to select a specific shell buffer, wherever point happens to be residing. Enter an empty line to the prompt to go to your current default shell, or use completing read to go to a shell from your multishell history, or start a new shell at the path you specify - including remote paths, using tramp syntax. (See the multishell-pop-to-shell docstring in multishell.el for details.)
Use a doubled universal argument to set the shell you choose to be the current default. (The prompt will indicate that mode with a "<==".)
Here's the decision tree:
No universal argument - use:
Universal argument provided - use: