Rework timeout a bit, to align with the API (read and write from async channel without timeout use 0 in NIO2; Future.get(infinite) is not as efficient as get()).