Until we find a solution to this one, as long as you're not adverse to using 3rd party utilities I have a working script to restart the W3SVC service when a 500 error like this occurs. It's a kludge at best, but it works.
Download UNXUTILS from SourceForge (http://unxutils.sourceforge.net/)
Unzip to c:\UNXUTILS
Create a batch file called c:\Restart_Web_Services.cmd, thus:
net stop W3SVC & net start W3SVC
Create a batch file called Check_500_Error.bat, thus:
@echo off
REM Using TAIL, retrieve the last 20 lines from the IIS logs and check for 500 errors from Nagios
REM If those are found, reset W3SVC
cd c:\unxutils\usr\local\wbin\tail -n 20 C:\inetpub\logs\LogFiles\W3SVC1\u_ex%date:~12,2%%date:~4,2%%date:~7,2%.log | grep -q -i " 500 0 64"&& c:\Restart_Web_Services.cmd
I set the script to run as a scheduled task every five minutes at highest privileges and it's been working for 24 hours now powering through the resets as needed.