This is implemented by allowing the Message:set_due method to load the message metadata to consult the scheduling constraints, which should mean that all scheduling updates have the constraints applied to them.