In onsite-gap exception creation, you call addSplitExceptions(..., allExceptions, new List<pse__Schedule_Exception__c>()) but never use that list later.
How to fix: Pass null and guard in addSplitExceptions, or reuse a dedicated onsiteGapExceptions list if you want to report it separately later.
File: ScheduleHoursDistributor.cls (onsite gap creation + addSplitExceptions signature)