Hi, this looks like an old question, but I had the same issue and I think I figured it out:
The error code returned by create_client(ip,port) will only let you know if it failed due to ERR_ALREADY_IN_USE or ERR_CANT_CREATE. So, once you get OK, the connection attempt takes time, so observing the signals connected_to_server and connection_failed will notify you when success or failure actually occurs - success is pretty much immediate in my testing where failure seems to happen after a timeout.
BTW, I’m new to Godot so this may not be entirely correct (please chime in to correct me if I’m wrong).