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.