### What happened?

Start a BiDi enabled session, but do not call `driver.getBiDi()`, this will let the driver initialize the connection on `driver.close()` and `driver.quit()`. 

Both calls will run into a `TimeoutException` after ~ 30s, this makes the shutdown of such a driver very slow and exceptions need to be handled.

### How can we reproduce the issue?

```shell
var options = new ChromeOptions();        
options.setCapability("webSocketUrl", true);
Augmenter augmenter = new Augmenter();
WebDriver driver = augmenter.augment(new RemoteWebDriver(uri, options));

try {
    DevTools devTools = ((HasDevTools) driver).getDevTools();
    devTools.createSession();

    driver.close();
} catch (Exception e) {
    e.printStackTrace();
} finally {
    try {
        driver.quit();
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}
```


### Relevant log output

```shell
org.openqa.selenium.TimeoutException: java.util.concurrent.TimeoutException
Build info: version: '4.16.0', revision: '15400459dd*'
System info: os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '21.0.1'
Driver info: driver.version: RemoteWebDriver
	at org.openqa.selenium.bidi.Connection.sendAndWait(Connection.java:172)
	at org.openqa.selenium.bidi.BiDi.send(BiDi.java:54)
	at org.openqa.selenium.bidi.BiDi.<init>(BiDi.java:37)
	at org.openqa.selenium.bidi.BiDiProvider.lambda$getImplementation$2(BiDiProvider.java:55)
	at org.openqa.selenium.remote.RemoteWebDriver$ByteBuddy$3k6C8irl.maybeGetBiDi(Unknown Source)
	at org.openqa.selenium.remote.RemoteWebDriver.quit(RemoteWebDriver.java:435)
	at some.issues.Main.lambda$main$0(Main.java:39)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.util.concurrent.TimeoutException
	at java.base/java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1960)
	at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2095)
	at org.openqa.selenium.bidi.Connection.sendAndWait(Connection.java:161)
	... 11 more
```


### Operating System

win 10 x64

### Selenium version

4.16.1

### What are the browser(s) and version(s) where you see this issue?

chrome 120

### What are the browser driver(s) and version(s) where you see this issue?

chromedriver 120

### Are you using Selenium Grid?

4.16.1
new Object[] {rawDataMap.get("method"), event.getKey().getMethod()});
                return rawDataMap.get("method").equals(event.getKey().getMethod());
              })
          .forEach(
              event -> {
                Map<String, Object> params = (Map<String, Object>) rawDataMap.get("params");
                Object value = null;
                if (params != null) {
                  value = event.getKey().getMapper().apply(params);
                }
                if (value == null) {
                  return;
                }
                final Object finalValue = value;
                for (Consumer<?> action : event.getValue()) {
                  @SuppressWarnings("unchecked")
                  Consumer<Object> obj = (Consumer<Object>) action;
                  LOG.log(
                      getDebugLogLevel(),
                      "Calling callback for {0} using {1} being passed {2}",
                      new Object[] {event.getKey(), obj, finalValue});
                  obj.accept(finalValue);
                }
              });
    } finally {
      lock.unlock();
    }
  }
}