It's the most respectful way to do it. I'm a SP with chronic illnesses and sadly, I have to cancel a couple of times. But, I ALWAYS put the deposits in a specific bank account before the appointment so it stays there if I have to cancel and give it back. Like you said, simple principle. My policy is that if I'm the one being canceled on, I keep the money and if I'm the one who is canceling, they have it back as soon as they see the canceling message.
I'm someone who is really transparent so I take the time to explain what's happening and how my situation impacts me. Thankfully, everyone has been understanding and comprehensive yet. They get their money back instantly and they appreciate my transparency so they tend to book again, which I deeply appreciate.