Updated AIO transport abandoned in 4.0.CR3 to 4.0.17

Updated AIO transport abandoned in 4.0.CR3 to 4.0.17 to drastically reduce CPU usage under heavy load observed with NIO transport
Does it make sense to have the processing of the Runnable be configurabl?. For example the default case can be what you have (the optimized direct version), but would it make sense to allow then to specify their own Executor if these limitations don't work for them (i.e. stack depth too small or they plan to do blocking operations)?