In the I instance I absolutely agree with you voluptuous
I would send him a very polite but firm message explaining that he was fully aware he tends to finish early and therefore should not have made a longer booking, that you normally don't do refunds if the client chooses of his own free will to leave early, but on this occasion you are willing to refund him his unused fee minus the 30 min and a small amount for admin say £20.
I would also advise that you will not be accepting any further bookings from him.
Not too long ago someone voluntarily sent more than the deposit amount, cancelled, wanted the difference back. Now this was fair enough but he had sent a lot of texts back and forth after making the booking and sending the more than deposit. He had already cancelled the first appointment with me losing that deposit, he knew he had been excessive and told me he was glad I hadn't blocked him (there had been a history of contact, usually wanting short notice, last minute evening bookings as well as exasperation from him). Although I had asked for a slightly higher deposit I had not asked for the additional he sent, then I had to spend time sending it back (obtaining his bank details, carefully setting up the payment). He since made a 3rd booking sent deposit plus some extra for a video call, which he pushed for, lots of texts etc. Funnily enough despite a message on a social media profile I have the night prior, on the day not a squeak and nothing since. I am very firm on confirmation.
Anyway I digress but the refund is more time and hassle.
By the way I have had clients who book plenty of time, don't use it, insist on booking the plenty of time again. I set it aside so expect to be paid for it UNLESS the shortnening is somehow to my benefit, and then the refund would have to be easy.