Creo que su pregunta es "¿Cómo atrapo el error de tiempo de espera del script y lo registro en la base de datos". Entonces la respuesta es que no puede hacerlo con On error resume next.
El problema es que ASP ha determinado que su secuencia de comandos se ha ejecutado durante demasiado tiempo. Para que su código atrape y registre el error, su código debe continuar, pero eso es exactamente lo que ASP ha determinado que no debería suceder ya que se acabó el tiempo.
Además, en general, a menos que pueda continuar haciendo algo sensato (y eso no incluye el registro) en su secuencia de comandos, no tiene sentido intentar usar On Error Resume Next para atrapar el error.
En su lugar, cree una nueva secuencia de comandos ASP que debería ejecutarse cada vez que obtenga un error de secuencia de comandos (esto incluirá un error de tiempo de espera de la secuencia de comandos). En el administrador de IIS, abra el cuadro de diálogo de propiedades de su aplicación y seleccione la pestaña Errores personalizados. Edite el controlador para el error HTTP 500;100 y cámbielo a URL y la ruta de este script ASP.
Ahora puede colocar su código de registro de errores en este script ASP. Puede acceder al error generado por la página ASP fallida accediendo al método Server.GetLastError. También puede configurar esta página para enviar algo amigable al usuario.