From https://man7.org/linux/man-pages/man1/n.1.html :
By default, a new namespace remains in existence only as long as it has at least one member process. A namespace can be made persistent— that is, pinned into existence even when it has no member processes— by bind mounting the corresponding /proc/PID/ns/ns-type file.
Which PID is being used in the file path of the bind mount source? Isn't the whole point of a bind mount point when creating namespaces that the namespace doesn't rely on the existence of a PID?
If I create a network namespace with clone() using the CLONE_NEWNET flag and then create a bind mount using the PID of new process that was created, and then I kill the new process, I would think that the /proc/PID/ns/net file disappears, but then the /var/run/netns/<netns name> would also get deleted and the network namespace wouldn't persist.
/proc/PID/ns/netdoes not disappear when PID (and all the processes which share the same namespace) terminates, if it's bind-mounted elsewhere. Have you considered doing some simple testing?