I never had the problem at home but on many other networks an idle connection would drop after a couple of minutes. I added this to ~/.ssh/config several hours ago and haven’t lost a connection since:
TCPKeepAlive no ServerAliveInterval 20 ServerAliveCountMax 10
It’s counter-intuitive but it works for me. The usual disclaimers apply.