And here's the demo, using Construct 2 :
<img src="http://dl.dropbox.com/u/1412774/RecolorDemo/demo.png" border="0">
The idea is to load the image one time, parse its bitmap array, and split it in 4 canvas (so yes, it can be slow when loading the image at the beginning, and it's memory consuming when you load large images). After that, it's just an operation of pasting those canvas with the global effect flag of the HTML5 canvas set at the right value. Starting from there's, it's near realtime if you use coloring effects. (As the demo shows, if you try to do that all the time, when checking the 'realtime' box and moving the sliders, it's going to be slower).
In a few days, the behavior will be available for everybody !