Technologies evolve over time. The picture that you write a specification, then implement it and be done with it is naïve at best. Much of CSS2 was already usable around the year 2000. However, we’re still working on the specification. A more complex (web) technology is almost never implemented in one go. Part of the problem is testcases. To be able to implement a specification you need a thorough testsuite and to get a good testsuite you need to have a good specification. You can tell this is very much an iterative process.
So if some timeline indicates HTML5 will be ready by the year 2010 you can be sure that’s optimistic. However, given that popular browser vendors are participating in the activity it’s also very likely that you can use several of the features (soonish).
<canvas> anyone? Priority of implementing features is pretty much market demand. That’s why we implemented support for
contenteditable="" in Opera 9. They work good enough for most people already, but they are not completely in line with the HTML5 specification yet. (Also partially because we have some outstanding comments on that section.)
The specifications we’re developing now are much more incrementally developed directly taking author and developer feedback into account instead of trying to work out a technology and then force that upon implementors. There are also new requirements. For a specification to reach the recommendation stage it (typically) needs to have two interoperable implementations based on a large testsuite covering all the features in the specification.