Long lasting TCP connections are known to get dropped occasionally due to a multitude of different factors, however, unless both ends send and accept keepalive packets then connections with no data passing through them will simply expire naturally.
If you're using a NAT router that's a separate state table that will expire connections, and in the case of cheap devices.. they can have trouble keeping state.
I currently have one state that's been alive for 360 hours, which is usually idle.
-Bry.