Exit from the child processes calling POSIX::_exit(). That would skip any cleanup.
Save on your objects the PID from the process creating them (you get it from $$) and on DESTROY skip the cleanup actions if the saved PID is different to that of the current process.