### What happened?

https://seleniumhq.slack.com/archives/C0ABCS03F/p1677391208456589

I'm using an invalid element locator (for testing purposes) and I'm trying to identify that element within a fluent wait
The fluent wait is ignoring some exceptions (not including org.openqa.selenium.InvalidSelectorException)
Expected Behavior: the invalid selector exception should be thrown immediately
Actual Behavior: it gets caught and rethrown recursively until a timeout occurs, and then a timeout is thrown with the cause InvalidSelectorException
Here's a gist with the fluentWait block, the expected exceptions block, and a screenshot from the throwable object.
https://gist.github.com/MohabMohie/6c4d16bfca0ad7b15c3e274b631ecdf9
Is this a bug or am I doing something wrong?

### How can we reproduce the issue?

```shell
https://gist.github.com/MohabMohie/6c4d16bfca0ad7b15c3e274b631ecdf9
```


### Relevant log output

```shell
N/A
```


### Operating System

Windows 11

### Selenium version

Java 4.8.1

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

N/A

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

N/A

### Are you using Selenium Grid?

N/A
@SwitchToTopAfterTest
  @Test
  @Ignore(value = CHROME,
    reason = "Element in different browsing context can not evaluate stale",
    issue = "https:bugs.chromium.org/p/chromedriver/issues/detail?id=3742")
  public void testAnElementFoundInADifferentFrameIsNotFound() {
    driver.get(pages.missedJsReferencePage);
    driver.switchTo().frame("inner");
    WebElement element = driver.findElement(By.id("oneline"));
    driver.switchTo().defaultContent();
    assertThatExceptionOfType(NoSuchElementException.class)
      .isThrownBy(element::getText);
  }
  @SwitchToTopAfterTest
  @Test
  @NotYetImplemented(SAFARI)
  public void testAnElementFoundInADifferentFrameViaJsCanBeUsed() {
    driver.get(pages.missedJsReferencePage);
    driver.switchTo().frame("inner");
    WebElement first = driver.findElement(By.id("oneline"));
    driver.switchTo().defaultContent();
    WebElement element = (WebElement) ((JavascriptExecutor) driver).executeScript(
        "return frames[0].document.getElementById('oneline');");
    driver.switchTo().frame("inner");
    WebElement second = driver.findElement(By.id("oneline"));
    assertThat(element).isEqualTo(first);
    assertThat(element).isEqualTo(second);
  }
}