Nice to see that a simpler rotation won out. Trying to wrap one's head around when in an Eclipse a DoT should be refreshed is complex. Knowing whether you are close enough to the end of an Eclipse gets sticky; casting Starfire at 2.1 seconds left in Lunar makes more sense than at 1.7 seconds, but is it really possible to tell the difference between the two? Enter the necessity for the above mentioned IS trick. Anyway, it appears you have essentially tested both of these considerations with the "Reapply at the end for the next eclipse" case. I've fine-tuned that case in Team Robot before (example, reapply moonfire at 4 seconds left in Solar Eclipse), but the gain was never more than 100 dps compared to other methods (none of which included your winning case).
I've honestly spent a lot of time unlearning the "guess" rotation tricks - I make a conscious effort to not switch early, or to cast a dot when I "think" Eclipse is about to proc.
The problem is that while those do work a good portion of the time (and it's really, really awesome when they do) it really kills your dps when they don't. And unfortunately there's a trend to remember the really awesome moments and glaze over the average - I'm guilty of it, I know that.
Also the "IS trick" gives 12229
dps as far as I can tell (casting Moonfire at the start of each Lunar still. That could be wrong (it's hard sometimes to tell if simcraft is actually doing what you want it do) but I'm pretty sure this logic is solid:
cast IS if it's not ticking, we're not in Eclipse and we want to trigger a Solar. Since the logic should still make it cast a Starfire before that, this should fit the criteria.
And the "winning" logic:
The >2 is just so it doesn't apply IS right at the end sometimes. Note that in both cases we aren't applying Dots at the start - you should still do it but since it's equal for all rotations I didn't bother figuring out how to make Simcraft do it.