Had an absolutely weird case where FireFox and Chrome wait spin for over a minute, when all the data had already been received.
Narrowed it down to this only happening when accessing over https, and it also didn't happen when I turned off gzip compression. I compress most of my output automatically using Apache's deflate module.
In the end it appeared that my Eiffel FastCGI program send a Content-Length for the uncompressed content. And that was returned to the browser. The solution was not to put in a Content-Length, so the web server will put one in for the compressed size.
PS: the reason why this worked in http mode might be because I was accessing the app through a Squid 3 proxy, and that might actually be doing the right thing. Too lazy to test this now.