How can I have a remote SSH-like session that doesn’t close due to connection failure?

I have a laptop from which I SSH into a remote machine every day. When the connection drops (e.g., because I’m taking my laptop from work to home and logging back on), all of my SSH sessions die. I want to avoid this, and have it behave the exact same as if the connection hadn’t dropped. I’m aware of some solutions that almost accomplish this, but not quite:

  • Mosh seems to prevent scrolling back in history
  • Screen and tmux seem to require the user to manually detach and reattach sessions

Am I missing something? Is there some other solution that works here?