### What happened?

In selenium-java 4.12.0-SNAPSHOT, there is a hardcoded timeout of 10 seconds for the execution of Selenium Manager. This timeout is insufficient to download browsers, and maybe even for drivers in slow connections.

### How can we reproduce the issue?

Any test using the automated browser management (Chrome or Firefox) in Java will be broken because of this timeout. For example:

```java
import static org.assertj.core.api.Assertions.assertThat;

import java.util.Arrays;
import java.util.logging.Level;
import java.util.logging.Logger;

import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;
import org.openqa.selenium.manager.SeleniumManager;

class BasicTest {

    WebDriver driver;

    @BeforeEach
    void setup() {
        Arrays.stream(Logger.getLogger("").getHandlers()).forEach(handler -> {
            handler.setLevel(Level.FINE);
        });
        Logger.getLogger(SeleniumManager.class.getName()).setLevel(Level.FINE);

        FirefoxOptions options = new FirefoxOptions();
        options.setBrowserVersion("118");
        driver = new FirefoxDriver(options);
    }

    @AfterEach
    void teardown() {
        if (driver != null) {
            driver.quit();
        }
    }

    @Test
    void test() {
        driver.get("https://bonigarcia.dev/selenium-webdriver-java/");
        assertThat(driver.getTitle()).contains("Selenium WebDriver");
    }

}
```


### Relevant log output

```shell
org.openqa.selenium.remote.NoSuchDriverException: Unable to obtain: Capabilities {acceptInsecureCerts: true, browserName: firefox, browserVersion: 118, moz:debuggerAddress: true, moz:firefoxOptions: {}}, error Failed to run command: [--browser, firefox, --output, json, --browser-version, 118, --debug]
	at org.openqa.selenium.remote.service.DriverFinder.getPath(DriverFinder.java:25)
	at org.openqa.selenium.remote.service.DriverFinder.getPath(DriverFinder.java:13)
	at org.openqa.selenium.firefox.FirefoxDriver.generateExecutor(FirefoxDriver.java:141)
	at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:132)
	at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:127)
	at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:112)
	at io.github.bonigarcia.wdm.test.BasicTest.setup(BasicTest.java:46)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
Caused by: org.openqa.selenium.WebDriverException: Failed to run command: [--browser, firefox, --output, json, --browser-version, 118, --debug]
	at org.openqa.selenium.manager.SeleniumManager.runCommand(SeleniumManager.java:121)
	at org.openqa.selenium.manager.SeleniumManager.getDriverPath(SeleniumManager.java:286)
	at org.openqa.selenium.remote.service.DriverFinder.getPath(DriverFinder.java:22)
	... 9 more
Caused by: org.openqa.selenium.TimeoutException: Process timed out after waiting for 10000 ms.
Build info: version: '4.12.0-SNAPSHOT', revision: '1104c8f'
System info: os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '11.0.15'
Driver info: driver.version: FirefoxDriver
	at org.openqa.selenium.os.OsProcess.waitFor(OsProcess.java:183)
	at org.openqa.selenium.os.CommandLine.waitFor(CommandLine.java:117)
	at org.openqa.selenium.manager.SeleniumManager.runCommand(SeleniumManager.java:114)
	... 11 more
```


### Operating System

Not relevant

### Selenium version

4.12.0-SNAPSHOT

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

Chrome, Firefox

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

Not relevant

### Are you using Selenium Grid?

No
throw new WebDriverException(
          "Failed to parse json output, executed: " + arguments + "\n" + dump, failedToParse);
    }
    return jsonOutput.getResult();
  }
  /**
   * Determines the correct Selenium Manager binary to use.
   *
   * @return the path to the Selenium Manager binary.
   */
  private synchronized Path getBinary() {
    if (binary == null) {
      try {
        Platform current = Platform.getCurrent();
        String folder = "linux";
        String extension = "";
        if (current.is(WINDOWS)) {
          extension = EXE;
          folder = "windows";
        } else if (current.is(MAC)) {
          folder = "macos";
        }
        String binaryPath = String.format("%s/%s%s", folder, SELENIUM_MANAGER, extension);
        try (InputStream inputStream = this.getClass().getResourceAsStream(binaryPath)) {
          Path tmpPath = Files.createTempDirectory(SELENIUM_MANAGER + System.nanoTime());
          deleteOnExit(tmpPath);
          binary = tmpPath.resolve(SELENIUM_MANAGER + extension);
          Files.copy(inputStream, binary, REPLACE_EXISTING);
        }
        binary.toFile().setExecutable(true);