Looks like the watcher thread was interrupted but the interrupt was lost somewhere along the way.

**Build scan:**
https://gradle-enterprise.elastic.co/s/tkibjrfrug5pw/tests/:server:test/org.elasticsearch.reservedstate.service.FileSettingsServiceTests/testStopWorksIfProcessingDidntReturnYet

**Reproduction line:**
```
./gradlew ':server:test' --tests "org.elasticsearch.reservedstate.service.FileSettingsServiceTests.testStopWorksIfProcessingDidntReturnYet" -Dtests.seed=2A90D2A7A2E74E69 -Dtests.locale=sl-SI -Dtests.timezone=America/Fortaleza -Druntime.java=17
```

**Applicable branches:**
8.7

**Reproduces locally?:**
Didn't try

**Failure history:**
https://gradle-enterprise.elastic.co/scans/tests?tests.container=org.elasticsearch.reservedstate.service.FileSettingsServiceTests&tests.test=testStopWorksIfProcessingDidntReturnYet

**Failure excerpt:**
```
java.lang.Exception: Test abandoned because suite timeout was reached.

  at __randomizedtesting.SeedInfo.seed([2A90D2A7A2E74E69]:0)

```
server/src/test/java/org/elasticsearch/reservedstate/service/FileSettingsServiceTests.java
assertTrue(operatorSettingsFile.endsWith("settings.json"));
    }
    public void testWatchedFile() throws Exception {
        Path tmpFile = createTempFile();
        Path tmpFile1 = createTempFile();
        Path otherFile = tmpFile.getParent().resolve("other.json");
        
        assertFalse(fileSettingsService.watchedFileChanged(otherFile));
        
        assertTrue(fileSettingsService.watchedFileChanged(tmpFile));
        assertFalse(fileSettingsService.watchedFileChanged(tmpFile));
        
        Instant now = LocalDateTime.now(ZoneId.systemDefault()).toInstant(ZoneOffset.ofHours(0));
        Files.setLastModifiedTime(tmpFile, FileTime.from(now));
        assertTrue(fileSettingsService.watchedFileChanged(tmpFile));
        assertFalse(fileSettingsService.watchedFileChanged(tmpFile));
        
        assertTrue(fileSettingsService.watchedFileChanged(tmpFile1));
        assertFalse(fileSettingsService.watchedFileChanged(tmpFile1));
    }
    public void testStartStop() {
        fileSettingsService.start();
        fileSettingsService.startWatcher(clusterService.state());
        assertTrue(fileSettingsService.watching());
        fileSettingsService.stop();
        assertFalse(fileSettingsService.watching());
        fileSettingsService.close();
    }
    public void testCallsProcessing() throws Exception {
        FileSettingsService service = spy(fileSettingsService);