Copyright © 1999–2017 FastMail Pty Ltd
Ooops, mea culpa. I had checked all the Modified time update code, and it all worked perfectly so I couldn't see how it wasn't working...
Finally wound up searching for anything else that might touch it. It appears that when you Set Properties, that updates the Modified time as well. Fair enough. Only problem is, the DAV PROPPATCH method also called SetProperties, right after it updated the modified time. So it was setting, then changing back to NOW() again immediately. Bah.
I've fixed this and rolled it out to all production machines. Please enjoy your new time-settable DAV.