Took me a min to figure this one out. I was also able to reproduce this issue. Looking at the documentation for http connectors. It doesn't say you can set it to -1 but it doesn't say you can't either. So I dived into the code to find out for sure. In the code I found the below(soTimeout = connectionTimeout)
if (soTimeout != null && soTimeout.intValue() >= 0)
socket.setSoTimeout(soTimeout.intValue());
So based off that -1 is never getting set and the Socket java class is using default settings.
If you are wanting a infinite timeout set it to 0(I would not recommend as this can bring you all kinds of problems.)
EDIT #1
Looked a little deeper into this and it seems there is a bug in tomcat which I have reported and will be in 7.0.42 onwards.