The answer is related to you side question: "How do I add events in the fastest way ?"
The fastest way is to use .events.list and .update():
dps.events.list = [{...}, {...}];
dps.update();
The .events.add() and related methods (.events.remove() and .events.update()) add the event to .events.list and call .update() internally.
Every .update() refreshes the scheduler and invokes the rendering events (onBeforeEventRender, onBeforeCellRender, onBeforeResHeader, onBeforeTimeHeaderRender).
See also:
http://doc.daypilot.org/scheduler/event-loading/