Remember to always reply to the mailinglist as well since others may find the discussion useful.
I understand your confusion since you seem to think the if statement is performed every timestep. This is not the case. It is only performed once, but can be repeated if the if statement is inside a loop (there is an example in the documentation). Something like this would work:
label loop
variable a loop 1000
run 1000
if "${steps} > 1000" then quit
next a
jump SELF loop
But it makes no sense to do this since you already know that you want to do something after N timesteps. Instead you can just first run the N timesteps, then perform what you want to do (start a dump, quit simulation or something else).
From the example in the documentation I see that this may be confusing, but once you accept that it will just evaluate the if statement at the time of the command, it should be clear that it is not automatically being checked every timestep.
Anders