To cut down on the number of Draw() calls, I would instead draw all 3D objects, then take a screenshot if needed, then finally draw your UI stuff.
I don't know if it will like having a ResolveBackBuffer() call in the middle of drawing everything or not though...
Actually, reading back through, I think that is pretty much what was described above :S