What you describe is called technical debt.
https://en.wikipedia.org/wiki/Technical_debtA strategy of unethical developers is to make themselves relevant by producing a lot of features while drowning the project in technical debt.
This often happens when:
a) stakeholders are not technical.
b) their strategy is to have an early exit (like an acquisition) before the problems caused by the technical debt materialize.
c) they can compensate for the technical debt hiring an army of thousands of developers.
I would say it is a management problem. And like all management problems, unless you can fix that, your best option would be to spend your peak productive years in a company that cares.
If you want to take issues to management, tread very lightly. First of all, your challenge will be to present the problem while not seeming depressed, irritated or pessimistic, or heavily criticizing others. Try to sell the idea using a positive twist, like increased productivity, robustness, etc. If that doesn't work, just start interviewing.
---
If you decide to stay, just start creating tickets from all the technical debt. Make sure to include details like commit links, and objective information about how it is a problem. Then:
- link bug tickets to tech debt tickets.
- link incident tickets to tech debt tickets.
- if a task requires a tech debt workaround, create a separate ticket for the workaround and link it to the tech debt ticket.
This should create some sense of visibility around the tech debt. It will likely won't work anyways:
- Some people feel smarter and empowered when they deprioritize tasks.
- The only ability of uncreative managers is to say no. Saying no makes them feel useful.