I've been through this exact same story during my home remodel with a ~~contractor~~ handyman. The problem as far as I can tell is that when you pay someone hourly there is exactly zero incentive to make those hours go away. I don't believe people intentionally try to abuse the setup, it is just doomed to be a common outcome because of the structure. If you pay someone hourly they want to spend those hours doing their best work to maximize the quality of the referral they'll get when they're done. It's too easy to forget that timeframe (i.e. budget) is part of what most people care about during a project. And for better or worse most people do prefer "better late than never" to "rushed and shoddy" so it's probably a fair bet for contractors to implicitly make.
I also empathize with the author in terms of "why didn't you just do this and that" and the whole sunk cost fallacy. It's really easy to be on the outside and give the obvious retrospective advice that you should have fired X and switched to Y once you saw a few red flags. But that too, even if it makes logical and financial sense when you model it out still involves risks. There's no guarantee the next agency will be any better than the current so you're making a bet priced at the cost of treading while getting the next agency spun up. And ultimately humans are involved. It sounds like the issues with the project were being communicated and responded to during the project lifecycle so there's hope that the miss-steps will be corrected.
It's really hard. The silver lining, in my case and the author's, is that hopefully, despite the issues, all said and done you'll get a return on your investment. For me I simply don't want to lose money I'm not in the housing market to make money, I just need a place to raise a family.
The hard advice takeaway: if you have a budget and expectations about how a project will be delivered, you ABSOLUTELY NEED those codified in a contract. Shop around until you are willing to find someone who will agree to share the risk and deliver on a statement of work for a fixed cost. I understand in a competitive market this is hard because contractors and firms can easily go find "other" work. But the more pressure the better. Try structuring the project to have diminishing returns or financial penalties for being delivered late. Handymen or otherwise hourly arangements have their place for small jobs on the order of 1 or 2 days max 1 week of work. But hourly doesn't buy you any executive function: which is needed to manage hourly work. Keep in mind, in most cases, if these hourly people were skilled at executive function then they'd own a contracting firm, manage a team, and be profiting...
The whole experience has really made me wonder why any startups pay salary before they're profitable. Because as many know, this happens all the time internally with full time salaried employees too. No incentive complete work until the very last moment necessary. Deadlines and punishments for not meeting them are incredibly important. I mean I get it, a salary says "I need you around for this much because otherwise my business doesn't work" so it emotionally makes sense and I'm not saying the industry should stop doing it. BUT, I also have a seen a lot of work be dished out to salaried employees when it could have otherwise been structured as a 5k or 10k contract with a statement of work and payment remitted upon completion. I'm surprised you don't see more of that blend. I guess SASS is kinda a stand-in but still.