Запустите отдельный поток обработки данных с проверкой, жив ли герой, а далее воспользуйтесь функцией AllowPlayerTavernHero/AllowHeroHiringByRaceInTown/AllowHiringOfHeroInTown, запускающимися если проверка дала отрицательный результат.
P.S. В указанных скриптовых функциях , в первых 2 последний параметр ставить false, в псоледней — 0.