I think you just disproved your own point. You're making an engine that has no specific finish line, no goal, no hard list of requirements to fulfil, and no way of evaluating/testing it's merit... so you've not finished
Having an explicit purpose for the engine (it must support the needs of this game) gives it a solid focus, and a framework for evaluation.
Maybe I was far to broad in my statement. When I started, I had specific design goals from previous experiences, an end goal, and time frames. Of course I didn't always meet deadlines but I did my best to meet them. I set sprints on work and goals to achieve and that kept my motivation high. I did achieve what I originally set out to achieve and I am happy with with my efforts. By not finished I meant things like bug fixes, optimisations, and "nice to have" features. I had purpose when creating it, and it was being designed side by side a game, a number of games over time actually.
What I found difficult being the only coder was the artists needed to see the game coming together to keep motivated (which is totally reasonable and I understand that). If I didn't stay on top of the game then it would hinder their workflow of iterating over the artwork and animation to improve on it. The issue there with me was the game was dependent on me getting some feature in the engine working, not necessarily finished, just working. So it became a situation of constant context shifts for me as to not slow the artists down too much.
In my current position we have an engine team, and product teams. The product teams can focus on making the products that are customer driven, without worrying too much on how the underlying tech works. While the engine team can of course just focus on the core tech. If the customers want some new tech then that obviously falls on the engine guys. In this separation it is rare for a team to slow another down.
So the point I was originally making was it can be hard as a lone coder to create a game and reusable engine side by side.
I agree with everything that has been said about game engines failing because they have not passed the "dog food test". I've used gamebryo and it was a horrible mess.