Fix threading issue in connecting client socket tests

Can't run the server socket runner thread until the runner subclass is fully initialized. Confirmed tsan passes only after making this change.

PiperOrigin-RevId: 476923104
diff --git a/quiche/quic/core/io/event_loop_connecting_client_socket_test.cc b/quiche/quic/core/io/event_loop_connecting_client_socket_test.cc
index c99dc64..a286e03 100644
--- a/quiche/quic/core/io/event_loop_connecting_client_socket_test.cc
+++ b/quiche/quic/core/io/event_loop_connecting_client_socket_test.cc
@@ -50,10 +50,7 @@
                          SocketBehavior behavior)
       : QuicheThread("TestServerSocketRunner"),
         server_socket_descriptor_(server_socket_descriptor),
-        behavior_(std::move(behavior)) {
-    Start();
-  }
-
+        behavior_(std::move(behavior)) {}
   ~TestServerSocketRunner() override { WaitForCompletion(); }
 
   void WaitForCompletion() { completion_notification_.WaitForNotification(); }
@@ -83,8 +80,11 @@
   // closes the accepted connection socket.
   TestTcpServerSocketRunner(SocketFd server_socket_descriptor,
                             SocketBehavior behavior)
-      : TestServerSocketRunner(server_socket_descriptor, behavior) {}
-      ~TestTcpServerSocketRunner() override = default;
+      : TestServerSocketRunner(server_socket_descriptor, behavior) {
+    Start();
+  }
+
+  ~TestTcpServerSocketRunner() override = default;
 
  protected:
   void Run() override {
@@ -120,7 +120,10 @@
                             SocketBehavior behavior,
                             QuicSocketAddress client_socket_address)
       : TestServerSocketRunner(server_socket_descriptor, behavior),
-        client_socket_address_(std::move(client_socket_address)) {}
+        client_socket_address_(std::move(client_socket_address)) {
+    Start();
+  }
+
   ~TestUdpServerSocketRunner() override = default;
 
  protected: