in reply to download attempted vs completed

I haven't tried it myself, but it looks like you can use mod_perl2 with Apache 2 to trap a timeout error.

mod_perl docs : APR::Error

edited Also have a look at Apache2::RequestIO->sendfile which you can use to send a file, and it returns a status code or throws an exception.

good luck