This is some really key advice for folks who like to compartmentalize things to stay organized (like myself!). The only problem I have with this type of objective-based progress tracking is where to place features and ideas that come up as development progresses. it's like all the sudden I have all these outliers and factors that weren't previously considered, so I have to kinda improvise to keep the flow and not get caught up in the feature creep.
I'm generally a fan of implementing spur of the moment ideas immediately while they're fresh (with the "iterate but move forward" caveat) as it keeps the energy and inspiration going, so I just implement them without even writing them down, or they go on the short list. If they're too big or I'm not at that stage yet I either break them down into smaller tasks or they go on the long list.
I don't believe in overly detailed prescribed design docs. I prefer to find the game as I'm building it and those lists are just there to give some direction, figure out the next step and to not forget any good ideas I have along the way. For my fish simulation game, Guppy, the long list was never more than a few pages of notes.
It sounds like you have well-enforced balance :) I certainly agree with implementing fresh ideas, though personally the caveat you mentioned has been the trick of mastery for myself. How do decide when to move forward, or how do you decide when iteration is going too deep?
Well, above list is as much from things that have worked for me as from mistakes I've caught myself making. Getting lost in iteration, especially. My rule now is if I haven't made visible progress on new features (that were already on the list) in months, it's time to move on. I think keeping a video devlog helps, because if I can't make a new video of it it's probably just tweaking that can wait. Plus if you want to get a handle on the scope of your project, you need to have it all there before you can see how much work it will be to finish.