when she emails to say she's got SO much done, she's so glad she cancelled, i'd email her back and say 'i'm glad you managed to get things done. unfortunately i've been unable to do x yet again / had to ask someone else for help...'
i just wouldn't let her get away with thinking she's always doing you a favour.
and i definitely think getting her to help out when you've got an important appointment is a good ploy.
another strategy is to explain that you have to organise your time because the dc's are SUCH a handful you can't sit at home all day, you need to get them out of the house. therefore you need notice for when she's going to help out. can she help out every second thursday morning for 3 hours?
that way you make it a standing arrangement that she can't suddenly cancel at the last minute without good reason.
if none of these things work, then i'm very sorry to say but i think you should not ask at all, and when she offers say 'thanks, but i need more notice if you're going to help out, and i need to be able to rely on you.' bluntly - like that. practice for a couple of days if you need to.
my mil was quite like yours, and i did tell her just that and it helped. i was very mad by the time i got up the courage to though...
my mil thinks that pnd is caused by lack of sleep. thanks for helping out then when i needed her most!