just ran into the following use case with which a possible bug is 'revealed'.
suppose I have 200 users that must receive a weekly mail.
I have set the batch size of mail to sent per batch to 15
I have a cron job that sends the mail twice a day totaling 30 users a day.
The cron job only runs on weekdays totaling 150 users a week
so in week one, 150 users receive the mail, 50 users not.
when week two starts you would assume that the 50 users (who didn't receive the week one mail) are in one of the first batches of week two....
But they aren't???, users that received an email last week (in the 150 trench) receive their week 2 mail... resulting is some users never to receive an email again
Work around is simple: make the batches multiplied by the cronjobs larger then the total number of users.
The reason that I made the number smaller then the total number of users is that in that way you have some sort of weekday rotation for a user, they will sometimes receive their weekly mail on another day thus having more attention for it...
filling of the mail batches should be sorted on last delivery date
does this make sense?