When you perform a background batch compile, the compile may cause the Aspnet_wp.exe process to deadlock if all the worker threads are used. When you set the process model to 
maxWorkerThreads = 20,  and then when the number of running Aspnet_wp.exe threads also equals 20, all 20 worker threads wait for a 
ManualResetEvent to be signaled. A 
WaitCallback (BatchCompileDirectory) function that cannot run until there is a free thread signals the event. A free thread never occurs. Use all the threads in the thread pool, and then generate a situation that requires a batch compile to simulate this scenario.
You may see the following event logged in the Application log of the 	Event Viewer:  
Event ID: 1003: 
Description: Aspnet_wp.exe (PID: <xxx>) was recycled because it was suspected to be in a deadlocked state. It did not send any responses for pending requests in the last 180 seconds.