Well I don't get it, I always (until I discovered "wait for") had the problem of something being executed after a sub call that hadn't finished yet.
Of course, what I have put before are very simple examples, the reality are quite more complex calls with controls, calculations, requesting data to the user, etc. Then the code that followed that call would continue executing without the previous one having finished yet.
That's why my life changed when I discovered "wait for", all those spaghetti code problems were over, trying to control events that jumped from one side to another and subs that were executed without finishing the previous ones.
I don't know if I am making myself clear, many of you already know that my English is that of "DeepL Translate".