The fixes from !630 (merged) were not enough, exceptions set on days were calendar did not repeat were also confusing other exceptions after this.
Simplify implementation a lot, instead of keeping track of the next exception date, start by building a set of all exceptions dates and use membership of this set as a criterion to skip exceptions.