Taking her out to lunch is an idea, but what I would do, if you host her somewhat regularly is, buy something nice for your table with the $20, perhaps a vase, centerpiece or serving platter, or if she has a special dish she always contributes a dish to serve that in (like a nice gravy boat if she makes awesome gravy or a salad serving set if that's her favorite). Next time she comes to dinner, use the cloth and hte new item, personalized to her (her favorite flowers in the vase, her favorite dish on the platter), smile and say, "oh I just wanted to thank you for offering to pay for the stain, as you can see it came out. I felt terrible you paid tho, so I hope you don't mind I used the funds to buy this in your honor."
I always grew up with certain items being named after family members (my China hutch is named John Willy, I have a serving bowl named "benjamin's bowl", etc). It adds a personal touch, and a level of intimacy that trumps formality everytime. Plus it's a fun conversation piece for people new to the table - when they ask where something is and I absentmindly say "it's on John Willy..." before catching myself.