#num particles is per second(I think it's slightly faster to for add new? Untested). So particle_system_add_new will spawn a whole bunch as you found out.
You can use particle_system_burst (particle_system_burst, "psys_", pos, 1), <- this last number is the total amount of particles to spawn. In this case 1.
Ok so now say you wanted to work out how to make an effect last 3 seconds.
If your particle system #num parrticles is 2 per second, then bursting (particle_system_burst, "psys_", pos, 6). 6 total particles will take 3 seconds to end.
Hope that makes sense