fly migrate-to-v2 - Automatic migration to Apps V2

I get it that you want to sell us more, just raise the prices and be transparent about it instead of pushing this onto us in an underhanded way like this.

I wish that was what we actually intended to with that extra machine.
To answer your question, add --ha false flag to your fly deploy command to disable automatic high availability. Read more on the 2 machines behaviour here.

For some services, running more instances is harmful if they’re not written in a way that enables that.

This is true & good feedback. I guess there’s an improvement to be made here.
Fwiw though, once the autoscaler kicks in, it stops all machines that aren’t serving any traffic. So you pay nothing if no-one is using your machine.

I’m getting the feeling that this is another way to force users to keep using (and paying for) resources they don’t need, by introducing friction when you try to manage your machines efficiently

You’re getting the wrong feeling.

When I’m scaling down to 0, I lose all the settings and have to deploy the app from scratch. I used to be able to just run flyctl scale count 0 when I no longer needed an app temporarily, and then it only took flyctl scale count 1 to bring it back up within seconds. Now I can’t do that; I have to redeploy the entire app, and then set the ram and cpu again, and it takes a much longer time.

I think you might have encountered a bug. That sounds like wrong behaviour. Gonna try and reproduce it.