Код:
else
  t := get_time();  // и это значение равно Tmax(1.5мес)
Ok. Давайте точнее.
t := udint_to_time(FFFFFFFFh), на калькуляторе можно десятичный вид посмотреть


тогда на следующем цикле get_time() := 0 и:
Код:
   0 - Tmax > T#1s  // Истина в этом же цилк и State := 1 тоже в этом же цикле
Неа
0 - FFFFFFFFh = 1, мс => false
1 - FFFFFFFFh = 2, мс => false
....
1000 - FFFFFFFFh = 1001, мс => true