Your font specified "monospace", which is a category of font. I found this example: context.font = "bold 60px 'Times New Roman', Times, serif";
Can you try that? Let's hope the user has 'Times New Roman' on his or her machine, since you can't embed fonts with HTML.
So basically, you may want to consider specifying an actual font name. Also, since HTML requests every single little image and piece of code and content as a separate bloated HTML request, and it doesn't let you embed fonts (let alone fine-grained control over which characters to embed), and they're rendered differently on every browser anyway, you may want to just try using FLASH.
EDIT: The real answer is that you probably have to set the font each time you acquire the 2D graphics context and draw something. That sounds like a pain in the ass, because it is. You're performing low-level drawing operations to render text. We are SOOOO beyond that today with the availability of a platform like Flash. Anyway, if you set the font, discard the context, then re-acquire it later somewhere else and try to draw again... the font setting will be lost, and you'll have to set the font again and draw before you discard the context. Basically, set the font and draw all your text with it before you discard the context.