Why can't people just prepay a credit on the service, and the service provider could deduce fees from the credit? A lot of other services are doing that. It would solve all kind of associated issues with this these kinds of errors, like cancelled cards, overdraft fees, etc.
Why not? I've decided to spend the money in the next few months on the service already, so the money is allocated anyway. I do it regularly. It also avoids paying the card companies' fees, because I can just wire the money.
A lot of serices are structured this way, anyway. Download services, hosting services, even marketplaces like Etsy. Really, Etsy's model sounds more like an exception from my POV. But I'm not in the US.