Particles are not removed from a GPU particle system, they are just skipped when they are not alive anymore, so isStarted for a GPU PS always stays true after it has been started.
This one is probably a bug, as this._actualFrame = 0; is done in the start function of ThinParticleSystem but not in GPUParticleSystem:
Thanks for reporting!
(note that you can do particleSystem.isStopped() instead of particleSystem["_stopped"])