I have no idea if this is related to your problem, but... I once had a connection timeout where a big institution was using Cisco routers, which charged ongoing license fees, tiered by how many connections they would support. And they configured them to recognize keepalive packets, and drop connections which only had keepalive packets for some length of time!