I think a successful PM tool needs to be able to do two things well: track things that need to get done and organize communication. I love desktop software for the former, I still use Things.app — even though Flow is better for me — because it's a simple desktop app.
However, I think web apps are best for communication. I'm not dependent on any installed software, and I don't need to walk my clients through installing software.
Also, a take a bit of issue with "anyone with a few hours and a CRUD generator can make..." :-) While it's true that "projects has_many tasks" is the typical setup, intuitive workflows and easy-to-use interfaces take a lot of time and work.
it's definitely not easy to develop something like this right.
2. If I want to tie myself to a particular version, I can't, meaning that if I don't like a $hot_new_feature, I'm SOL.
3. The browser is still very limited, and project management is very content intensive.
One single company willing to do actual applications programming could sell a ton of software.