fix(server): bulk worktree launches no longer fail on Git races

Launching many threads into new worktrees at once failed most of them:
concurrent fetches of the base lost the ref lock, branch and path names
collided, and concurrent writes to the shared Git config failed on its
lock. Retry hit the same collisions again.

Concurrent fetches of one ref now share a single running fetch. A taken
branch or path gets the next `-1`, `-2` suffix, the same style renames
use, while Git stays the arbiter. Config writes and branch renames take a
per-repository lock, so checkouts stay concurrent and concurrent renames
pick distinct names.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
b9c904d1a0Jake Leventhal committed on 10/23/2026, 6:56:21 PMparent5bb54a0
4 files changedLine totals unavailable