Vendor prefixes have turned out to be unsuccessful, but letting browsers move ahead before standards is the best thing that could have happened for the web. And the web apps we see today are evidence of it.
XHTML shows what happens when you try to agree on everything upfront. You mention agreeing on a basic syntax. The browser developers generally do discuss ideas for new features in basic terms before they release them, and hopefully there's some vague sense of agreement between at least two browsers before a feature goes alpha. But agreeing on anything more than that, instead of just hammering out a working implementation, means developers end up with APIs that are hard to use and don't address their users' needs.