Added a guard for rare cases where we could fail to get a handshake future (fixes #27). Also fixed a couple cases where we weren't closing abandoned channels created during failed connection attempts.