Adds rejection values when not already applied

+ Promises are rejected with an actual Error when an extension fails to load.
Moves reject() and resolve() out of the try/catch

because catching later errors is off-topic