La verdad es que dudo mucho que tu proveedor te hubiera puesto una duración máxima de 300 minutos (05:00:00 en el IIS), ya que el uso de sesiones es en detrimento del rendimiento del sitio, por el contrario los hosting lo deshabilitan o disminuyen los 20 minutos de default a unos 5, 10 o 15 máximo; por eso lo "normal" es manejar la sesión por código más que por el servidor.
Ahora, leyendo un poco he encontrado que el
valor máximo del timeout de una sesión es poco más de 500, quizá por eso no te respetaba ello cuando le ponías más de 1000, pero no explica por qué no funcionaba con 300.
La solución que encontraste en lo personal no me gusta, refrescar la página cada 18 minutos puede que interrumpa alguna captura, pero bueno, ¿que probabilidades hay de eso?, no se, habría que estudiar el sitio y a los usuarios para saberlo.