retry on socket timeout

`Socket#open?` isn't cutting it.