You are getting multiple particles because you're calling 'NewParticle' inside your eventParticleCount loop. So it's getting called once for each existing particle. If you only want a single particle, call it outside the loop at the top of the simulationStep function. If you only want a single particle birthed at the first frame, make sure to put it inside an "if (f == 0)" condition as well.
I'm not sure I understand your second question, but right now your lerp is happening inside the "eventAge == 0" condition, so it will not update each frame...but instead only when the event particles first enter the event.
I'm not sure I understand your second question, but right now your lerp is happening inside the "eventAge == 0" condition, so it will not update each frame...but instead only when the event particles first enter the event.