Simply changing GROUP BY day
to GROUP BY date
solved the problem...
No clue why it decided to break after Feb 28 though. I guess the date_format(date, '%W, %M %e') AS day
gets messed up after a leap year day when sorting by the alias.
Would love to know why if anyone has any ideas. Thanks!