Описанный в предыдущем посте способ не всегда работает корректно. Например в нашем случае при использовании commons-fileupload (streamingAPI) при обработке запроса, вычитывании некоторого количества байт из потока, и закрытии потока описанным способом, tomcat пытался обработать запрос еще раз. Метод service вызывается еще раз для того же запроса, с уже закрытым входным потоком.
Описанную в заголовке проблему в нашем случае удалось решить закрытием потоков с клиента. Ajax-ом слушается состояние закачки (сохраняемое в сессии) и при необходимости изменяется document.location.href, при этом браузер прекращает отправку запроса.