Unfortunately, I'm not able to reproduce the problem with args.clearEvents = true. Which version of DayPilot do you use?
In Angular, it's necessary to avoid changes to the watched objects ([config] and [events] attributes of <daypilot-scheduler>) in onScroll.
If you have dynamic loading enabled, it's necessary not to use [events] attribute at all. In that case, and with args.clearEvents = false, calling args.loaded() will incorporate the changes to the original events array and that will trigger another update and another onScroll event.
There is now a sample project available with a working Angular Scheduler infinite scrolling configuration, with some additional tweaks that improve performance and user experience.
The explanation will be added soon to the tutorial.