The problem is by the time the "Wait" finishes, the loop has already finished, so the loopindex reverts back to 0.
The new built-in functions can remember their parameters after a "Wait", but I don't think the previous example will work, because there is only one 'LocalLoopindex' variable which just gets overwritten. Instead try this:
+ System: On start of layout
-> Functions: Call DoCount (Times: 100)
* On function 'DoCount'
* Parameter 'Times' (Number)
----+ System: Repeat Times times
-----> Call DoRepeat (index: loopindex)
* On function DoRepeat
* Parameter 'index' (Number)
-> System: Wait 0.1 × index seconds
-> Text: Set text to index
Since DoRepeat is called repeatedly, there are separate copies of the index variable which each remember their values after the wait, so it should work as intended.
Or - just use an "Every" event or another different approach, this way is awkward...