queryTimeoutを設定したら、クエリが完了したものはすぐに監視対象から外れ、タイムアウト値までクエリが残っていたらExceptionを吐くと思っていたら、完了如何にかかわらず、タイムアウトを監視するためのTimerTaskインスタンスがタイムアウト時間経過まで残ってしまい、メモリを使い尽くしてしまった。
jmapとMemoryAnalyzerで調査したところTimerTaskが大量発生していたことから、判明した。

jmapとMemoryAnalyzerについてはこちらを参考に使用
https://docs.oracle.com/javase/jp/6/technotes/tools/share/jmap.html
http://www.eclipse.org/mat/
http://samuraism.jp/diary/2008/11/10/1226316240000.html