SyncNow has no project lock and never answers PROJECT_BUSY: both agents keep working, and what SyncNow guarantees is that the second writer cannot silently undo the work of the first.
Before writing, an agent is shown once the other live sessions working on the same files with their current objective, and it receives a live update when a file on its paths is changed through SyncNow. The server locks a single file only for the check, the write and the read-back, so two writes to the same file happen one after the other; if the other write does not finish within 20 seconds, the answer is WRITE_IN_PROGRESS and the call can be retried. If both agents started from the same revision, the second one is refused with STALE_CONTEXT and must re-read the file and re-apply its change on top of the first.
Creating the same new file is safe too: a file is created only if it is still absent at that moment, so exactly one of the two succeeds. To avoid duplicated work, each agent states its objective when it opens the project, updates it and the files it plans to touch with update_intent, and shares findings with team_update.