Sorry for the long delay on this one and thanks for your work to fix the bug.
One small remark: Please do not make write calls in on_change methods. on_change should only be for user interface, no impact on the data (eg: if I close my browser after making the change in edit mode without saving).
On the bug report, you mentioned the issue that the date will be changed when confirming is late. On the other hand it is not really problematic as long as these are in draft.
What do you think ?
In the meanwhile I have merged your changes (everything except the on_change) into 7.0