I disabled the else, and the above event, and cpu did go down a bit, but to be honest it looked like garbage collection was working on my end.
Well the CPU usage is still high (and I can bring that down mainly by making the simulation less realistic in ways that aren't noticeable) but now that I'm not adding an infinite number of audio effects the CPU usage doesn't grow over time. So that was definitely the problem, not C2's garbage collection (I am a bad workman, I love to blame my tools).