Throw rejected promise error on next tick.

Currently when an error occur during asynchronous loading in the activate function, the promise in its rejected state will be printed to the console log using system.log. This is very often difficult to see when doing development.

I propose that the error is more forcefully propagated, so that it is thrown in a synchronous manner on the next tick (using setTimeout in this implementation). The error will thrown in a "normal" manner, and be much more visible.