Began addressing feedback from bug #24697

Started rewriting steps to apply an orientation lock algorithm as per Bugzilla bug [24697](https://www.w3.org/Bugs/Public/show_bug.cgi?id=24697). 

It reworks the way the promise are resolved/rejected and the "pending promise" which is in the asynchronous task. 
I don't think you would need that if you make the pending-promise check happen before the fullscreen check. Note that you were missing a "return <var>promise</var>".