The title of this post says it all. pipe_timeout is the most undocumented Varnish Cache parameter.

It does what it says: it defines the timeout on pipe sessions. The default is 60 seconds, which is a bit short, as Varnish themselves recommend pipe for long downloads etc. Yes, if the long download is served directly from a webserver, the timeout doesn't matter.

However, if a script has to generate the document first, and doesn't send anything the first 60 seconds, the timeout kicks in, and Varnish will drop the client connection.

BTW: although it is a backend parameter, it seems you can't specify the parameter in your default.vcl backend section, but have to specify it as a start option (-p pipe_timeout=300) instead.