I agree that we shouldn't give up on OpenStack, but let's not underestimate the magnitude of the change that's required. As I blogged recently
OpenStack APIs (and, in some less well defined sense, the code) are intended to become a de facto standard. In the public cloud space, while Rackspace, HP, IBM and others will compete on price, support, and added-value services, they are all expected to offer services with binary API compatibility. This means that their customers, presumably numbering in the tens or hundreds of thousands, are all users of the OpenStack APIs. They have a huge stake in the governance and quality of those APIs, and will have their opinions about how they should evolve.
How are their voices heard? What role do they play in making the decisions?
Today, the answers are "they're not" and "none". Because that's not how open source projects work. As Simon Phipps wrote, "...open source communities are not there to serve end users. They are there to serve the needs of the people who show up to collaborate."
The hardest thing for an open source project to establish is a way of saying "no" to contributors, whether they be individual True Believers in Open Source, or vast commercial enterprises seeking an architectural advantage over their competitors. The impulse is always to do things which increase the number of participants, and it is assumed that saying "no" will have the opposite effect. In a consensus-driven community, this is a hard issue to resolve.