Code:
menu status,menubar {
  Test It
  .Do Testit: {
    set %x 1
    while ( %x <= 3) {
      TIMERmsg $+ %x -m 1 $calc(3000 + %x * 16) /msg $me %x
      inc %x
    }
  }
}


that well fix the firing order
ticks seem to go up in increments of 15 or 16 , likely actually in 15.625 (1/64th of a second), so you increment the timer by 16ms to offset to the next value checked against.