It was calling uv_read_start before the uv_connect call had completed. Although we want to allow this in the future, right now it's not supported.
Stop libev from entering the epoll_wait/kevent/port_getn/etc. syscall when there are no active handles left, that will block indefinitely.