I looked into this, played around with goals and stuff but couldn't get anything working that would support new parent particles.
To have a general solution that supports birth and death of parent particles I really think you need to write a plugin node because you need to access and manipulate arrays of data really fast. And you would need to specify how a particle will behave if its goal particle dies.
The plugin would best be written as a field node and would need all the usual field connections plus the array of parentIds. And from the parent particles it would need positions (and maybe velocities), particle IDs, and the ID mapping attributes that are supplied with a particle system. That way the child particles can quickly lookup the correct particle in the array based on the parentID, ( you have to have those mapping attributes because the IDs can't be guaranteed to be in order.)
If its written as a field you could get much more sophisticated motion than if it was a simple goal - for example you could apply drag or vortex behavior to the child particles