I think the way to go is a mix of the two. It is covenient for companies to get guaranteed money in advance. As for customer it's way cheaper to start with usage based model. This is because a lot of users are underusing their services.
This at least is the case in hosting industry where overscheduling is a big thing.
So best scenario for customer would be a pay per usage for low usage and subscription for moderate to high usage. At least this is what AWS is doing and I believe this is fair for both bussiness and customer
Here in Lithuania we have like 90% of plastic bottles have a deposit logo on them, pretty much all of the soda, beer, water, milk bottles are recycled. Most of the non recycleable bottles are from outside of EU brands, and those are generally more expensive. Collection points are also automated, where you put them on conveyer kind of belt ant it uses OCR to detect if the bottle can be recycled. Those collection points are attached to a store and you get a credit in associated store which can be used to either buy groceries or jus get your money in cash.
But if your service was down for more than what it takes to downscale to minimum scaling back up is not that big of an issue. It was down anyways. Also 24/7 instances exist for a reason, autoscaling is there to handle spikes, not a normal traffic.
This at least is the case in hosting industry where overscheduling is a big thing.
So best scenario for customer would be a pay per usage for low usage and subscription for moderate to high usage. At least this is what AWS is doing and I believe this is fair for both bussiness and customer