Есть предположение, что при разрыве http соединения (или ещё по каким-то причинам) потоки внезапно прерывают своё выполнение, возможно переходят в состояние WAIT или SLEEP. Речь не про задержки при работе GC, а именно когда http запрос перестаёт потоком обрабатываться по каким-то причинам.
Просто так "внезапно" - нет, не могут. Если кажется, что поток спит без видимых причин, то есть только два варианта: либо он ушел в нативный код (и там колбасится - спит - ждет I/O...), либо системный шедулер перестал выделять всей JVM время. Второе бывает под виртуализатором... в целом JVM старается максимально честно раздавать потокам имеющееся время. Однако, чем гадать на кофейной гуще, лучше просто посмотреть, чем конкретно заняты подозрительные потоки... теми же jstack или jconsole :)
Очень мало информации, чтобы ответить что-то вразумительное. По идее бесследно такое происходить не должно. При разрыве соединения вроде должен выкидываться какой-то Exception. Ещё возможно в коде обработчика запроса возникает какой-нибудь Exception или Error.
Попробуйте поискать что-нибудь в логах. Если ничего нет, советую попробовать обернуть обработчики запросов в try{...}catch(Throwable e) {...} и вывести его куда-нибудь отдельно.
"возможно переходят в состояние WAIT или SLEEP." чтобы исключить слово "возможно" - посмотрите через профайлер. Возможно Вы ищите проблему совсем не там.