With this in mind, where do things stand right now, should we consider writing an image backend, are there other options or plans?
I don't think you should, no. The image backend code is messy and problematic for a lot of reasons, and building on what we have there is a path to madness I think. Rewriting it is no small feat, and I think that if we did we'd want to do so in such a way that makes use of cinder for anything other than local disk. That's a really nice ideal, but it's a huge amount of work to do (and review) and also unlikely to ever actually happen.
We can do a lot better by reducing the feature gap with volume-backed instances. Implementing the features that aren't supported, and improving the ones that are *weird* when used on a volume-backed instance. These would be much smaller changes, easier to review, easier to gain acceptance for, etc. Personally, if you want to do some work in this area, I'd recommend picking a weird behavior and trying to propose an improvement to it.
--Dan