Salutations,
When executing event structures, they will execute until they are complete. This is the same with subvi's, hence, when you're using a while loop in your sub vi, it won't be complete until you tell it to stop. So, the data it accumulates won't be passed on until the loop is finished. It seems, one way to avoid your problem is to exclude making it into a subvi. Granted, you'll have a while loop inside your event structure, but that isn't necessary the most ungodly thing ever invented. You could make an event in your main vi to handle the change in the channel number, or whatever it was you desired. That way it would run that subvi, getting the necessary information, and then updating the plots.
I hope this helps, if it doesn't, yell at me and I'll try to be more clear.
Sincerely,
ElSmitho