You just added a DNS lookup to connect(2).
Also, you linked socket creation to all of this. This would make it hard to do an asynchronous version. Today you can create a socket and do a non-blocking connect(2) (after doing your asynchronous DNS lookup)
Lastly, I think if you tasked someone with creating that API, they would probably use the old APIs to build it ...