The early check in checkConditionalHeaders ran before data upload,
allowing concurrent requests to all pass before any write completed.
Use the existing distributed lock manager to atomically re-check
conditional headers and create the filer entry. The lock is acquired
after data upload (so it's held only for fast metadata operations)
and covers all conditional headers: If-Match, If-None-Match,
If-Modified-Since, and If-Unmodified-Since.
Requests without conditional headers have zero overhead (no lock).