What about something like a bank of - let’s say - 16 user boolean (true/false) variables, which can be set by user to true/false at any time in live performance by some TRIG1-16 key combination. Then each of them can be set as U1-16 trig condition (+ negation maybe). Something similar to FILL, but in multiple instances and bistable. One bank per project would be fine, does not have to be non-volatile.
It would be fancy, if LFO could modulate selected variable (positive LFO value sets it to true, negative to false) - slow LFO could be then used for pattern trigs modulation; fast could give the possibility of some crazy pattern variations. And even more fancy, if trigs themselves could be programmed for setting selected variable to true/false/toggle - happening of one trig could control the possibility of chosen trigs throughout the whole project; these then could control other variables, and as a result other trigs; and so on (the last trig could even control the first trig, creating then some kind of a control feedback loop).