Opera problem / fix
I found that in Opera (10.62) the dynamic icon would appear while the page was loading, but would be replaced with the default when the page finished loading. I managed to fix this by changing the final line of the script from:
...ie. add a listener so that it waits for the page to finish loading before it runs the script. (I did it this way instead of 'window.onload = ...' to avoid interfering with anything Google Calendar itself might be doing at window.onload). I haven't tried it in Firefox (or any other browser).
Hope that helps!