It can happen at any time. Each trigger runs at the moment it is fired, which can be during an event (e.g. like when the Function object triggers an event from an action) or before/after the event sheet runs. I deliberately try not to say specifically when triggers fire, because it could also be different across browsers (for things like input triggers). The only example you gave which is never used is parallel: if a trigger fires during events (as in the function example again), the running of events is paused, the trigger runs, then it resumes from where it left off.
Is it important to you when a particular trigger fires?