This has to be the most ill-advised move I've ever seen for a browser scripting library (and that's saying something). Wrapping callbacks in try-catch was bad enough, but now uses setTimeout, not only for the initial call, but for any subsequent re-throws.
Explanation? To provide a "more consistent" interface (whatever that means). :(
They've also uncommented their 'use strict' directive in 3 as well (was commented out in previous versions). Haven't bothered to ask about that move yet; certainly couldn't be in the name of consistency. :)