Я потратил несколько часов на устранение неполадок, а затем, наконец, нашел ответ через 2 минуты после публикации.
Проблема заключается в следующем:
Stream<Future<String>> futures = [...]
При использовании потока каждое будущее являетсяне передается до тех пор, пока не будет вызван каждый соответствующий map(t ->
.
FIX:
List<Future<String>> futures = [...] .collect(Collectors.toList());
Это заставит все потоки быть отправленными.