I hesitate to call Hetzner "cloud". Hetzner is an EC2+S3 competitor, not an AWS one. IMO the minimum for being a real cloud is you need hosted Postgres, hosted Kafka, hosted Kubernetes, and S3-compatible object storage. Without the first three Hetzner is just not in the same product category. Nobody sensible buys AWS for the comically overpriced EC2.

Another missed component is a real autoscaling load balancer. This often gets missed and taken for granted. Possibly due to if you haven't seen a good one (AWS) you might not realise what you're missing. Most aspiring "cloud" companies have fixed capacity single tennant load balancers which is not cloud in any definition.

Is it so hard to wire up some health/load checks and hook the provider API to spin up more VPS?

Is it really so much cheaper to pay for "hosted" apps rather than just plumbing your own on VPS/metal?

It's far cheaper to do it yourself, but the entire point is that you outsource the management of the service. Lots of people don't want to deal with database failovers, or - god forbid - deal with Kubernetes control plane issues.

On the opposite, it is more expensive, and any large enough company should probably at least consider renting metal rather than services. For a small org, though, it lets you avoid a lot of infrastructure/ops work.