Так если сделать его, скажем, в 20 секунд (с возможностью настраивать), то вся проблема решится. И не нужны будут все эти приседания с потоками и CompletableFuture.
то есть веб-драйвер не гарантирует, что все команды выполняются в одном потоке, иначе этот поток просто заблокируется и всё, дальше тупик, потому что прервать его нельзя
в Java всё связанное с таймаутами так или иначе связано с запуском отдельного потока
Ну, если в отдельном потоке будут запускаться http-запросы между тестом и вебдрайвером - это самый простой и безопасный вариант для всех. Никому ничего не придётся переделывать, да и в самом селениуме изменения минимальны.