open_lock_file retries while the open fails with raw os error 32 (cfg(windows) only),
as lock_exclusive and lock_shared already wait on the lock itself. The try entry opens
once and maps a sharing violation to Ok(None). Helpers take the open closure and busy
predicate so Linux tests drive them with fakes.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>