MongoDB cloneCollection between CentOS servers times out at 2 hours
The connection being killed after 2 hours, even when active (keepalive would only come into play for an idle connection, which is why it had not impact on your issue), suggests that this is a firewall or similar in the path between the two servers that is killing the connection.  You either need an exception to that rule from your network admin or you need to figure out a different way to copy the data, preferably one that can resume following an interruption.

The easiest alternative I can think of is to use mongodump to dump out the collection locally on the first MongoDB instance, SCP/FTP the files (with a client that supports resuming transfers) to the second machine, then use mongorestore to load the collection locally into the second MongoDB instance.