Junctions are causing some weird issues. We also can't replace them atomically. I think instead we should just write a file that contains the target path. It's a little silly, but it's the same thing, simpler, universally supported (of course), and we can replace them atomically.