Okay, I was looking through the schedule's logs, and it looked like every day had the schedule triggered when it was supposed to. So I went to my thermostat and changed it to 'non programmable' so there is no day/night cycle on the thermostat itself. I will see if this fixes the missed days.
I am curious though, because I had always been under the assumption that using the scheduler is better than simple time triggered automations because if the system or entity is unavailable at the exact moment the automation triggers, you could miss it. This could lead to irrigation pumps being left on for hours instead of minutes, and furnaces running the wrong temp all day/night, etc. It appears to me that the scheduler integration is simply running an automation at every breakpoint in the defined schedule.