I rebased this patch, and my proposed changes are in 0002.
Thank you
Looking at the changes in ExecLimit, I'm wondering if it would be better to add a new state to the state machine there -- instead of doing all the work in duplicative code in the LIMIT_INWINDOW case, have that one only save the current end-of-window tuple and jump to LIMIT_WINDOWEND_WITH_TIE (or something) which then returns all tuples that match the current one. I think that would end up being cleaner. Please research.