The AsyncListener.onTimeout is not called, when timeout occurs, when traffic routed via AJP connector configured with AjpNioProtocol protocol.
Thanks for the report. This has been fixed in trunk and 7.0.x and will be included in 8.0.0-RC2 and 7.0.43 onwards.