buenas...
en mi experiencia, jamas he visto algun script para evitar dicho aviso. como mucho, lo que si creo haber visto son configuraciones para el navegador donde se extiende el tiempo de proceso antes de mostrar el aviso. de todos modos, en mi opinion, me parece algo exagerado un proceso que se toma 3 minutos o mas; en tu caso 40 minutos.
lo unico que se me ocurre para evitar el aviso es hacer los procesos por temporizadores (setTimeout o setInterval) pero no aseguro nada porque no lo he intentado. de lo que si estoy seguro es que se tomaria mas tiempo de lo que deberia puesto que son rutinas pautadas. sobre tu ultima pregunta, todos los navegadores tienen proteccion contra script sin finalizacion. de lo contrario imaginate, cualquier malhechor que quiera molestar con un simple bucle infinito seria suficiente como para colgar el navegador.