The timer behavior works fine. "on timer" is a triggered event, so it will be evaluated out of order of the rest of the event sheet. You also can't see how much time is left on the timer.
You can also use a variable. Set it to the number of seconds you want and subtract TimeDelta from it every tick. The timer is done when it's less than or equal to 0. The main advantage this has over the behavior is you can see how much time is left.
The only inaccurate way is using "every x milliseconds" to decrement a timer when x is close to 1000*TimeDelta.