IOError слишком неконкретен в данном случае. Заюзал socket.error (там не только таймаут может произойти, да). Ошибку сокета залогировал.