It's been 15 years, he's never going to change. You know this.
It sounds like you're so deeply in love with this man. You've dedicated your entire existence to him and your life revolves around him, his needs, his wants, his preferences. Everyone in the household must dance to his tune.
This really isn't healthy. What about your child? You're so focused on your man that you're sacrificing your child's right to a happy and peaceful home. Your child lives under the expectation that they must tiptoe around when the man is in a bad mood. I can't say "dad" because he isn't much of a father.
You dismiss the effect it's having because it's hidden. Some of the damage has already been done. Focus on what you can do now so that it doesn't get worse.
Can your child live with grandparents or other family and you could see them at weekends? You've said you're not leaving him so that's the only solution. Your child matters, they are important. The child should be the centre of your world, not a man. The man should be a partner, your team mate, a father, working together to raise the next generation.
I think before you make any decisions, you should look at having therapy yourself. You've lost yourself. You work, you care for your man, you look after the house. Where are you in all of this? You are also deserving of love and being cared for, you know. I suspect all of this comes from low self esteem and strong beliefs about marriage and sacrificing everything to stay in a marriage at all costs. It's messed up, OP. There's a better life out there for all of you, including your husband.
Ideally, you'd divorce amicably. Husband would get a flat in a supported living place or have some kind of package of care with support workers checking in on him. He'd see his children at weekends and do the "fun dad" stuff. You'd have the relief of only looking after yourself and the children. You could focus on yourself at weekends, or I imagine part of the weekend because he wouldn't be able to manage a full weekend. Either way, you'd have some time to yourself to pursue hobbies, go out with friends, chill out.