Nie jestem użytkownikiem OSX, ale może to być system operacyjny skonfigurowany do zabijania połączeń TCP, które przekraczają 120 sekund. Czy próbowałeś ustawić opcję tcp-keepalive w jakiejś wartości (np. 30 sekund), aby sprawdzić, czy połączenie nadal umiera?.