Some of these requests will fail and Tomcat will log the this exception:
jul 01, 2013 11:42:38 AM org.apache.coyote.AbstractProtocol$AbstractConnectionHandler process
SEVERE: Error reading request, ignored
java.lang.IllegalStateException: Calling [asyncPostProcess()] is not valid for a request with Async state [STARTED]
Your code produces an identical exception (I've upgraded in the meantime to Tomcat 7.0.42). But your version consistently fails, where my Spring versions usually works. Perhaps a timing difference due to the extra Spring code? Anyway, this demonstrates that it is a Tomcat bug. Should I report the bug there, or will you do that?
The 50ms was just an attempt to make the problem easier to reproduce, by creating a busier mix of connections and timeouts. My real code has timeouts of 30 or 60 seconds and there I see this problem a few times per day.