If you want to avoid handling event paths/GUIDs for all of your snapshots in code, then using a parameter to drive snapshot instruments is how I would recommend going about it.
Functionally there isn’t too much difference, so a persistent event will save on additional code.
Snapshot instruments will automatically handle starting and stopping their snapshot instances based on whether they are triggered or untriggered. I wouldn’t expect a snapshot instrument to create multiple snapshot instances and/or not release them - if it did, it would be a bug, so please let us know if that occurs.