This is a bit difficult for me to explain, but let me try ...
Based on my prior experiences I have come to dislike PATCH for various reasons. Most of all because you cannot have side effects with it - even though I know your example is trying to do it.
In your example you PATCH "reason" as if it was a simple string property on the main resource - but I was considering "reason" as something to be written into a separate log which may, or may not, be represented as a separate resource, and certainly not be represented as a property in the main resource. And if it is not there how can I then patch it?
Further more "reason" is added to a list of "reasons" (the log) which shows what has happend over time so if you want to patch it then it should be done as something like an "append" operation to a JSON array (which is still not part of the main resource).
Another interesting twitch you touch upon is what "schema" should describe. For Mason I expect the schema to describe the payload of the operation - in this case the PATCH operation which must take a PATCH format like for instance json-patch and the schema for that kind of document looks nothing like the schema describing what you can patch. There is a difference between the schema describing the resource and the schema describing json-patch.
PATCH can be good for simple CRUD operations but not (always) for complex bussines operations. Neither does PATCH lend itself easily to traditional forms describing various HTTP requests - at least not in any way I have seen yet.
/Jørn
--
/Jørn