It’s basically instant, quick enough to not impact timing of other scripts and delayed events and stuff. Would probably need to set up a scope to get the exact timing. It’s also a limit for the whole script/execution context – if the iteration limit is exceeded it will just break out of any while loop it encounters after at most one iteration, continuing to the next line. Consider:
I 0; J 0; X 0; Y 0; Z 0
W < I 15000: I + I 1
W < J 15000: J + J 1
X I; Y J; Z + I J
Which when executed results in X = 10000, Y = 1. You can set these loop bounds to other values but Z will be at most 10001.