Step 1: Start searching for a new job.
The problem is not the overtime. The problem is not the developers who have no oversight or training. The problem is this:
Our management has mostly a short-term vision and ignores concrete warnings and realistic improvement suggestions
As the saying goes, "you can't fix stupid". If management wants to hire a team of unskilled, untrained, unsupervised people to develop their software, they're going to get software that is broken. That's the problem with hiring that sort of team and putting them on critical applications. Anyone competent in software development would know that's a recipe for disaster, and would be very willing and open to listening to improvement suggestions.
The problem here is that, for whatever reason, management is trying to cut corners by having unskilled people work unsupervised on critical-path applications (and probably paying them far below market rate, that's usually the reason why). If they accept substandard work, this is not a company that's going to be successful for very long (if even they are successful at all). Get out of there before the whole thing implodes in your face.
Step 2: If your boss is unaware of the issues with the software, explain the issues, and explain how long it will realistically take to fix them.
Use a time scale if you have to (e.g. "it will take months of work to untangle this mess"). Explain that this is something that management has done to both of you by cutting corners and hiring this unskilled, unsupervised team, and he should advocate to his boss, as you are advocating to him, to bring in a better team who knows what they're doing. Explain it in terms of "do it right, or do it twice"; it will take twice as much work to support a broken product as it will to just build the product the right way in the first place.
Step 3: Explain that you are willing to work reasonable amounts of overtime.
30 minutes per day is reasonable. 2 hours per day is not. Under no conditions, not even condition of termination, should you sacrifice large amounts of time for the company, not even for increased pay. You have a life to live yourself, and unless you are being severely underpaid (which is a complete other issue) the money is not worth the decrease in quality of life.
Based on how penny-pinching management seems to be, my guess is they're asking you to work overtime "for the company" or "out of the goodness of your heart" or "as a professional responsibility". When you are asked that, you should ask your manager (inwardly as a hypothetical to yourself, or outwardly to your manager's face, depending on how brash you would like to be): "Our relationship is that we exchange my time for your money. That's the condition of the exchange. You're telling me it's my professional duty to give you additional time for free. Under what condition is it your professional duty to give me additional money for free?". If your boss can't answer that (or your hypothetical in-your-head strawman of your boss can't answer it), then you have your answer on whether or not it is your "professional responsibility" to work overtime to fix these problems.
Step 4: Within the confines of the boundaries you have set, fix the issues that you can fix. If you're unable to fix them, then simply say, "I am one person, I can only fix these issues so fast. If you want them fixed faster, then you should hire more competent people and/or put more effort into building this application properly". You're a Senior Engineer, it's your job to speak authoritatively on the state of the application you are working on, even if that means telling management that it the project is shitty. Continue on this path until you successfully find a better job at a more competent company.