Не совсем понял, возможно.
Могу лишь точно заявить, что использовать блокирующее i/o внутри асинк-задачи — само собой бредятина.
ну вот в том то и соль, неблокирующий ио возможен только на колбеках в жабе. у тебя, например, опсылается несколкьо парелльных запросов через netty/vertx или иную очень NIO штуку, тебе нужно получить результат обеих - ты объединяешь их в какой-нибудь Future но общий результат можешь получить только колбеком - т.к. колбек будет исполнен эвент лупом под капотом либы, если ты сделаешь это пярмым вызовом типа .get() то твоё NIO превратися в блокирующие, а один из тредов экзекутора станет заблокированным, либо селить рядом второй тредпул в контором на каждую такую пару запросов будет выделятся системный тред для ожидания результата.