I should have just made games and derived an engine.
The two are mutually exclusive in my opinion. You either write what you need to make a specific game work or you write an engine that allows you to make several games once that engine is complete. Otherwise you'll quickly loose focus and never finish what you started.
To answer OP's question, I started writing an engine 5 years ago and I haven't finished yet. If you want to write a game then I'd suggest pick an already complete engine that suits you and focus only on creating a game. If you want to write an engine then go for it! It's fun, you learn lots, but just be aware it can take a long time.
If you've worked 5 years on an engine without making any games with it you might have a big problem though, you got 5 years worth of work that hasn't been properly tested. Making complete games using an engine is the only sane way to test its design, performance, stability and workflow(a big problem with many hobbyist engines is that they are virtually unusable for large projects, despite shiny tech demos) issues tend to pop up quite quickly when you try to use pretty much any engine(even good engines have issues, allthough they tend to be less severe) for a real game and you want to catch the major issues as early as possible.
This is true, and it's true about any product that is created, not just software. However if you have a background in what it is you are creating, set out with some clear design goals, and use an iterative design through regular testing then problems will more likely be caught early too.
But yes, the best way to test any product is to use it in a real life situation.