Hi Phill,
System.Web.HttpException (0x80004005): Request timed out.
This means the download did not complete before the request timeout period. The timeout can be configured in web.config file on the <httpRuntime element. You would add the attribute (if it doesn't already have the attribute) executionTimeout="110" and adjust the value to make the timeout longer. The number is in seconds, the default when not specified is 110 seconds so you would want to try higher numbers but only go as long as really needed to provide enough time for the download to complete.
As always be very careful editing your web.config file, as you know the slightest typo or mistake will cause an error.
Hope that helps,
Joe