Hi, just two comments without having looked at the remainder of the discussion.
1) If you need to augment a standard HTTP response code with additional information, the right thing to use is DAV:error (see <http://greenbytes.de/tech/webdav/rfc4918.html#rfc.section.16>).
2) Do not use 412 Precondition Failed unless the request was a conditional request.
Best regards, Julian