There's always something going on, always a problem or some sort of drama, always chopping and changing contact and so on.
It sounds like his Ex was always like this...chopping and changing at the last minute, even before you had kids.
we can't plan anything ever for a time we aren't supposed to have DSC because you can guarantee we'll be asked at the last minute,
What stops him saying, he can't do it as he has a prior commitment? If he keeps on agreeing, then she'll keep asking. If you always ask someone for money and never pay back, many people will keep taking.
I could ignore it at first but I see it affecting my DC
At this is the mistake many people make. The problem was always there, but at times us human beings turn a blind eye, hoping the problem will go away.
The Ex's behaviour hasn't changed. Your DH hasn't changed. Your tolerance for it has changed.
I would suggest as much as you can, where you have plans and last minute he has his kids over...you should go yourself and leave him to it. Either go where you were going with your DC, or leave your DC with him and go with a friend/ family.
The more he finds himself stuck at home and you still going out, enjoying yourself, he might just stand up for himself.
You need to get to a place of deciding, you will not let the Ex and last minute changes affect you so much. Obviously in some cases it just will, because that's life...but you need to mitigate it by having socialisation outside of the family.
I suggested this to someone else abd when the Ex changed plans last minute, she still went out. When she was getting ready, her DP asked if she'd forgotten the kids were coming. She said, no I haven't. I'm going, you'll be here.
She said he looked shocked. She did it again and a few more times and after the sulking stopped, he grew a backbone....well..mainly by not responding to texts or calls from the Ex when they has plans. It took a while for him to actually say no, so he dodged her calls to begin with.
They didn't have any shared kids though.