I think your reply was ok.
I wouldn't have let it get to 4 cancellations, 2 or 3 max and they're out!
It's done you a favour, you don't want customers like that, they are just a pain in the bottom and always will be, so just get rid of them. You can't build a good quality round with customers like that.
I love texting, because it weeds out all the rubbish customers, they do it for you, themselves! They may as well just send you a text saying 'I'm going to be a crap customer, do you want to keep me?'
Focus on getting reliable customers, not trying to make something good out of the bad ones.