I think the loop runs instantly like within the tick which is why loopindex is 0 then the Wait kind of queues up the events after it because it's asynchronous. I don't expect to get normal results when I add a Wait in a loop but I believe this is what happens.
For enemy spawner behaviour you could try using Timer behaviour on the enemy spawner object itself, this is what I used and gives nice control over system loop.