4741b71c51
If old_dir.rename(new_dir) raises (cross-device EXDEV, permissions, a racing writer) after the pre-move tombstone + unroute, the profile was left tombstoned-but-present — enumeration treats it as deleted, so the profile silently vanishes (worse than the ghost this PR fixes). Undo the unroute on failure: clear the tombstone and re-notify the multiplexer to re-serve the old name before re-raising. Adds a regression test (proven red on the base of this branch).