Don't treat a timeout as a fatal error.
Make timeout default infinite.
Return a proper erl structure.
trap_exit so that brutally killed workers wont leak connections.

Match error return from connect.