A loop will start and finish in the same tick. If you don't get another tick, you won't get an update.
You can use a counter variable to increment your for loop to break up your loop into multiple frames
Lets say you need For Loop from 0 to 20000.
You can do For Loop from CounterVariable*1000 to (CounterVariable*1000+999)
Add another event after to increment CounterVariable by 1 while CounterVariable<20 (this should NOT be in the loop).
This will break your 20000 interations into 20 ticks - 0 to 999, 1000 to 1999, 2000 to 2999, ect.
Change the amount of iterations you want to process per frame for different resolutions of progress.