If you want a loop to only run a given amount of times, you can either use a while loop with a manual iterator, or a for loop with an additional condition, both of which use actions that are already available.
E.G.
Set integer [~i] value to 0
Start Loop While : ([Status fsd status] Equals 'masslock' AND [~i] Is Less Than 3)
Press Tab key and hold for 0.03 seconds and release
Pause 0.25 seconds
Set integer [~i] to [~i] plus 1
End Loop
or
Start Loop : Repeat 3 Times
Begin Text Compare : [Status fsd status] Equals 'masslock'
Press Tab key and hold for 0,01 seconds and release
Pause 0,25 seconds
End Condition
End Loop
That said, the example you provide doesn't just wait, as it presses the key every ~250ms as long as the condition is true, and if the condition isn't true to begin with, it won't loop at all.
If what you want is to wait for a condition to evaluate to true for a given amount of time, you can use a date value and a while loop, E.G.
Set date [~timeout] to [~timeout] plus [2] seconds
Start Loop While : [~timeout] Is After Current Date/Time
Begin Text Compare : [Status fsd status] Equals 'masslock'
Press Tab key and hold for 0,01 seconds and release
Loop Break
End Condition
Pause 0,25 seconds
End Loop
which will wait for the condition to become true, at which point it would press the tab key, or for the time to run out, at which point execution of the command will jump to the "Loop End" action.