It seems that the event hasChanges does not trigger on a large schedule.
On the big dataset demo https://www.bryntum.com/examples/gantt/bigdataset/
Drop in this code: project.on('hasChanges', function (crud) { console.log(crud) })
See nothing is logged when moving tasks. Try the same thing on the basic demo and it logs every time. This was tested on firefox if it makes a difference. I have observed that crudStoreHasChanges() still correctly returns true when there are changes. It looks like this issue is also affecting other events like taskStore change.