Why not just have two kinds of pids, namespace local and global.
Local pids look like current pids, global ones have the high bit set. Each process can now be
"named" in two ways (namespace relative or absolute).
Clearly some things (like kill(2)) have to verify that a pid referenced through a global
identifier is in the same namespace (or has right to affect the other namespace), but the
global id is useful for things like the robust futexes.