This is a good time for a queue, I think--see the Advanced >> Synchronization palette. You can set up a parallel While Loop that monitors the queue, and you can enqueue elements--passing arbitrary information such as frequency, amplitude, or whatever you like--when the proper conditions arise with the audio signal. The queue will also help ensure that you don't miss any trigger events if the secondary loop happens to be in the middle of processing one event when the next one occurs.
I modified your example and attached it here to demonstrate. I also had some fun singing into my microphone to achieve the signal conditions that you programmed in--falsetto was required!
Good luck,
John