I think setting up Send Buses for each of your desired effects and using parameters to automate the volume of the send would be the way to go. Here is a simple example using discrete parameters to set the send level to 0db when active and -∞db when inactive:
Note that the signal path would be fixed in this case. Alternatively you could add effects to the event at runtime using
System::createDSPByType
and ChannelControl::addDSP
, which would allow you to setup effect chains in any order.