I think everyone knows deep down when they are behaving like a selfish shit, no matter how deep they bury it, until the point comes that they are an utter wreck of a human being and can no longer really realise that other people have lives too.
Do think that you have to start putting him in the position that he has to make tough decisions, yes. If you don't do that, then he will just carry on.
MIL then cancels the evening carers telling them that her DS will be around to cook her dinner and put her to bed... this is very hard, but if she does this then do not go to her. As long as you've told her that you (or rather, he) will not be around.
When you are dealing with a drunken woman with the attitude, temper and selfishness of a rather difficult toddler, the only thing that works is conditioning them. They have to take the results of their own decisions. If this happens once or twice, they sharp learn.
The downside is that there is a very small chance that something really will happen. However, it's small and ... very sadly, i think that you have to look at what happens if your husband does not stop running after her. What will the future be?
She has the carers and is sending them away. Your husband has done everything that lies within his responsibility.
This is a journey for him and he has to start making the hard decisions somewhere - or he will have lost your trust and in the end your respect. Much as he has a very difficult choice to make, not standing up to her is a destructive decision all of its own.