Okay,
Further investigation reveals that I am getting this error because the application is trying to restart before the module install process is complete. One of the easiest ways for me to reproduce this is to try installing the DNN Store module. The DNN has several folder elements for the different modules that make up the Store. The first folder element is the Store Admin module, and it includes all the DLLs.
What seems to be hapenning is that when the DLLs get copied to the Bin folder, the application restarts. Running threads are aborted, along with the thread doing the install. This leaves the module partially installed, and tosses the highly informative (not!) "Request timed out" message back to the user. To confirm my theory, I rearranged the folders in the DNN file, so that the DLLs are the last thing to get installed. When I did this, suddenly everything installed properly.
Since this is not happening to everyone, I expect I have something configured wrong somewhere. I just can't figure out where. I've tried increasing the "Shutdown time limit" on the application pool. I've also tried adding the "delayNotificationTimeout" attribute to the httpRuntime element. Neither of these had any effect. Is there some configuration item I'm missing somewhere?