Ну, концепция правильная, а ошибка классическая.
Time.deltaTime - float, время между кадрами. Нифига не целое и не равное единице.
Допустим у вас TimeToNextText равен 5. Частота кадров - 3 кадра в секунду. Значит Time.deltaTime = 1/3 = 0.33333
И как вы не вычитайте в каждом кадре это из 5, вы никогда РОВНО 0 не получите.
В общем ошибка в сравнении флоатов