Situation: Classic ASP application, using a custom Application Pool. Default settings.
On some IIS7 machines, IIS decides to serve only one page at a time.
Are you sure you don't have a dependency in your code which is causing the deadlock. I've seen this before where logging, sql connections etc creates a dependency. Use perfmon and check the hard disk read/write queue, memory read/write queue to see if things are backing up.
I would highly recommend Tess Ferrandez's (ASP.NET Escalation Engineer - Microsoft) blog for lots in insights and way to find out what is happening. Tess has forgotten more about this stuff than most people will ever know.
I think your problem is not IIS related but something in your app, probably in your ActiveX component. Make sure you clean up after your ActiveX component. Here's a piece of code I use to clean up after using Excel (Another Com component). Remember Com is not managed.
Private Sub ShutDownExcel()
If objExcel IsNot Nothing Then
objExcel.DisplayAlerts = True
objExcel.Quit()
System.Runtime.InteropServices.Marshal.ReleaseComObject(objExcel)
objExcel = Nothing
End If
' Clean up memory so Excel can shut down.
GC.Collect()
GC.WaitForPendingFinalizers()
' The GC needs to be called twice in order to get the
' Finalizers called - the first time in, it simply makes
' a list of what is to be finalized, the second time in,
' it actually the finalizing. Only then will the
' object do its automatic ReleaseComObject.
GC.Collect()
GC.WaitForPendingFinalizers()
End Sub
Hope this helps.