Don,
I had a try at your example and found, that the user event does never fire in the main.vi as long the sub.vi is runnig. Triggering in the sub.vi does not make any difference.
The reason for that behaviour is actually rather simple:
1. There are 2 user events, let me call them "stop" and "invert" for short.
2. There are 2 event structures, one in the main.vi the other in the sub.vi.
3. The "stop" event is to fire in the sub.vi event structure.
4. The "invert" event is to fire in the main.vi event structure - which it refuses to do.
In your example you registered both events with both event structures.
You get the idea ?
If you separate the events and only register each event to the one event structure it is supposed to fire things will work just as you described them in the first place!
Anke