If there was indeed cherry in it and there was only a small stain that she did not notice until 6 hours later, I'm thinking that it was only a small spill and not like the drink was dumped all over her. Otherwise she would have known it was stained. Going by what you have said, I think it was handled well.
Now, had he dumped two large drinks completely over her, then an offer for cleaning and maybe a small discount (no more than maybe $5) would have been more than enough.
I used to work at a Steak and Shake. My first table out of training, I accidentally over balanced a milk shake on the table resulting in it spilling all over the table (but not the guests). The guy laughed so hard, he swept the second milk shake into his son's lap. I remember being absolutely terrified that they were going to yell. But they were a great table! I apologized up and down, told my trainer, and we got everything cleaned up and new shakes out to them. I don't think we took anything off their bill, and honestly, that was probably one of the biggest tips I have ever had.