Particle system won't restart emitting before last particle has died

I’m trying to make a particle system emit whenever I hold a button down and stop emitting when I’m not pressing the button. The particles have a 1 second lifetime and they die on collision.

The problem is that if I let go of the button and press it again quickly, the particle system won’t start emitting again before the previous particles have died either by running out of lifetime or by colliding with anything. I only have to wait for the previous particles to die after I have called either Stop() or Emit().

The same problem persisted whether I was using Emit() or Stop() and Play(). I also tried using Clear() before Play() but it didn’t help.

Unity version 5.3.5f1

Also you can enable/disable an emission module:

ParticleSystem.EmissionModule em = particleSystem.emission;
em.enabled = false;

Forcing the particles to stop and clear fixed the problem for me. I feel like this should be standard behavior though. I wrote an extension method that I use in place of Play() for my particle systems, maybe someone else will find it useful:

public static class UnityUtils
	public static void PlayProperly(this ParticleSystem particles, bool withChildren = true)
		if (particles.isPlaying)
			particles.Stop(withChildren, ParticleSystemStopBehavior.StopEmittingAndClear);