You probably have some pretty good currency having been there 12 years. You've been there long enough, and you were a founding member of the team. It's kind of your baby too, and you have seniority.
I would let the project manager know about the situation. The PM is probably not going to be too happy about the scope creep and the possibility of missing delivery dates. Let the PM fight that fight; it's what they get paid to do.
If you are the PM, cut the guy off from client contact, and have him spend the rest of his time getting everyone coffee. Of course, explain why.
Don't worry about being a "troublemaker" or "boat rocker." If a complaint is never reported, then no one will know about it and the problem will continue.
As long as you're not causing a lot of drama, you should be fine. The thing about management is that they don't get much feedback. No one wants to be "that guy" who is always complaining, but the reality is "that guy" can be a good source of information for management since no one wants to admit there are problems.
There was some Google manager that talked about making decisions that would get you fired. I don't remember who, and I can't find the piece. Anyway, they gist of it was to make the hard decisions, like slipping a release date to do things the right way or fix a problem.
Captain Ned wrote:
Pure code jockeys with no people skills will eventually wear out their welcome with management, unless management is infested with millenials. Millenials simply can't relate to the old farts that sign their paychecks.
Part of good management is about knowing how to people who have different strengths. Some people are better suited to certain tasks then others, and it's not just millenial thing. I've seen this play out with people at least ten years my senior.
Most people are only self-interested, and their interest in other people stops at their nose. It's just a human thing.