Have you made this change permanently in /etc/sysctl.conf or simply in /proc?
Mongo will not close this server connection, nor should it. The socket state is handled by the TCP stack on the system and it is its responsibility to manage the state of the socket. Based on the settings in /proc, the state will be change connection. Here's a diagram of the typical changes that a socket will go through, throughout the TCP transaction (initial handshake to closing handshake).
If the port is open, the server is in LISTEN state on the 2-tuple (ip:port). When a connection is made, a socket is open based on a 4-tuple essentially and moved into ESTABLISHED state. From memory, in your case, after 1800 seconds, the socket will begin its transition from ESTABLISHED state, then go into CLOSE WAIT, followed by TIME WAIT and finally CLOSED. The transitions per state are different per o/s as every TCP stack is implemented differently. So the thread will be there for quite a long time until it's cleaned up (I've done some simple testing using netcat).
The best thing to do would be to reproduce the issue with the client dying and then watch the state of the socket with