"we currently plan on doing a fast first-paint of pages using canvas, concurrently building an SVG document for the page in the background, and when the SVG document is ready, switching to that."
Well, in theory you could render text as HTML (with @font-face for example), and then have individual canvas elements for the geometric shapes and images.
In theory, you can also use CSS3 and some hackery and get all the geometric goodness ... but that's in theory. In practice, your code will look oh so nasty and be unmaintainable. Maybe by HTML6 or CSS4 we'll get some geometric goodness making this feasible, but for now, Canvas or SVG is the way to go.