You can "fast zoom" using the canvas as its own source for drawImage:
A Demo: http://jsfiddle.net/m1erickson/Yyc5G/
var zoom=2;
function zoom(){
ctx.save();
ctx.translate(canvas.width/2,canvas.height/2); // or your desired zoom point
ctx.scale(zoom,zoom);
ctx.drawImage(canvas,-canvas.width/2,-canvas.height/2);
ctx.restore();
}
Which will do your fast zooming (yes, with jaggies).
Then when the user stops zooming you can do your better quality redraw.