Make sure PUSH.xhr is set so duplicate push requests can be prevented.

PUSH.xhr is checked for the existence of a previous
request but it is never set. This patch makes sure it
is set so a race condition where multiple push requests
stomp on each other is avoided.

This also prevents the call the cachePush if the previous
request was abort to avoid the stack getting out of sync
with requests that actually completed.