refactor(atproto): split 409 errno — ESTALE for swapRecord mismatch, EEXIST for rkey collision
EEXIST ("file already exists") misleads users during edit conflicts.
ESTALE (even though Finder renders it as "Stale NFS file handle")
semantically matches "the cached view is stale, refresh and retry"
which is exactly what swapRecord conflicts mean. Raw 409s (rkey
collision on createRecord) keep EEXIST, which is accurate.
Also updates the implementation plan to reflect this split.