Why does the Particle System restart when I unparent?

I’m trying to unparent a particle system from an object that’s about to be disabled to ensure that the current particles persist. However the moment I try to unparent it, the particles from before are deleted and the particle system is reset to the beginning. This is the code I’m using to unparent it.

protected virtual void OnDisable()
{
        if(BloodSplurt != null)
        {
            BloodSplurt.transform.SetParent(null);
        }
 }

From reading around, it seems to be that Unity still marks the object as about to be destroyed, so the particle system marks itself as ended before OnDisable is called, restarting it. So it seems the problem isn’t to do with unparenting it, it’s that the object is being “undestroyed” and the system resets because of it.

Only solution people have suggested is parenting the particles to an empty gameObject, though some of the threads I’m looking at are years old so could be outdated:

https://forum.unity.com/threads/particle-systems-particles-destroyed-when-changing-parent.435458/