This is a lot of fun, it should definitely be moved into the showcase forum. I'd also try posting it up on PixelJoint's resources forum, they'd love this and might give you ideas on how to take it further.
One idea for saving would be to just generate a URL that represents the canvas, that way you don't need to actually save anything on your server. Something like:
Or if you use a # instead of the ? you can "quick save" without actually reloading the page or anything. Anyways, just some ideas!