timers, net: use single unref'd timer for internal timeouts

If you were to `socket.unref` and also `socket.setTimeout` your loop would stay open until the timeout fired.

This alleviates that problem by making internal timeouts subscribe to a single timer that has already been unref'd