Hi Bodo.
David isn't on support at the moment so he asked me to look into this. I'm fairly new, so it took a bit to figure it out. Here's the observations that I've made relating to Course Set Due messages.
Once a course set is complete, the user will be enrolled in the following course set after the nightly cron. The due date for this new course set is set to the specified duration after the course set begins, not relative to when the previous course set would have ended. An example should make things clearer (assume one month = four weeks):
We have two course sets. Each course set has a one month minimum time required. This means that the user must be allowed at least two months (eight weeks) to complete the program. We set up a course set due message to trigger one week before each course is complete (so we would expect them to be delivered at the end of weeks three and seven). We also set up a course set overdue message for one week after they are due. A user is assigned to the program on the first day of the first month and we allow them two months (eight weeks) to complete the program. The user completes the first course after two weeks. They will be enrolled in the second course set during the next nightly cron, so the next day they can start the second course. Five weeks after starting the program (three weeks after starting the second course) they receive a course set due message, letting them know that the second course set is due in one week. Two weeks later (after a total of seven weeks) they receive a one week overdue message.
I think this could be enough to explain what happened in your test case for course set due email reminders. If you created two one-month course sets, enrolled a user at the start of the first month, jumped to day 16 and got the 15 day email warning, completed the first course set, jumped to day 2 of the second month and received another 15 day warning (with no other warnings in between).
I'm pretty sure that this is how it works, but I could be wrong. If you observe something different then please let David and I know and we'll try to work out what's happening.
Nathan