Du darfst deinem statemillis nur den Wert von curentmillis geben, wenn der "Timer" neu gestartet werden soll. Jedesmal wenn du statemillis gleich curentmillis setzt müssen wieder die eingestellten Millisekunden vergehen (bei deinem Beispiel 6000 Millissekunden).
Also am besten den Wert von curentmillis erst dann statemillis übergeben, wenn der Vergleich curentmillis - statemillis > 6000 wahr ist, in dem dazu folgenden if-Block. Dadurch wird bei erreichen der Differenz von über 6000, statemillis wieder gleich curentmillis gesetzt. Jetzt würde es wieder 6000 Millisekunden dauern, bis der Vergleich wieder wahr ist.