I hate (have experience this myself) when instead of compensation for hard work, you receive fairly empty praise like "you're the best engineer we have". If I am, please pay me accordingly. This doesn't mean jumping you to principal engineer or anything, but it does mean to at least give you a raise. No raise or promotion in those three high performing years as their described best engineer seems absurd. In a lot of places, you need to vouch for yourself and maybe this is one of those places. You're the only person that's going to prioritize yourself.
I'd definitely sit down with you boss and tell him how you feel (write notes before hand) and be honest with them. Honestly, I'd start passively looking for jobs now. If things work out with your current employer, you can always still stay, but this will give you a jump start and an idea of your market worth.
I really wish you the best of luck. Worst case, I'm sure you'll be able to find another position that will compensate you appropriately.