Javascript does not work in multiple threads, so you are not safe from race conditions (ignoring the upcoming support for Worker threads in Safari and Firefox: D).
A simple question: how do you call setAlpha several times, firefox, safari and opera, all combine style sheet updates - for example. they will not redraw or even transcode style information while js is working, unless needed. Therefore, they will be drawn only if JS is completed.
So if you do
while(...) setAlpha(...)
they will not be updated, you will probably have to use setTimeout to launch several different calls to update the style.
An alternative would be to use a library such as jQuery, mootools, etc., which I vaguely recall, provide a simplified mechanism for these types of animations and transitions. As an added bonus, I believe that at least a few libraries will also use the webkit transition rules and css animations when they are available (like Safari, and I think the latest builds are firefox)
[edit: caveat: I really didn't use any of these libraries, I just read about what they should do. My sites do the same in trot as any other browser, because I could not develop my way out of the paper bag: D]
source share