Your code is wrong. You should never use CallSub to raise an event that is intercepted with Wait For. Use CallSubDelayed instead. Otherwise there is a chance that the event will be raised before the wait for line was reached.
Anyway, your approach here is wrong and will likely to cause all kinds of problems. You should instead wait for subs that return ResumableSubs. Including in the first call that is done from the activity.