evaluate assertions immediately after xhr.abort()

Anne has made a good point that it's more appropriate to perform assertions
here, rather than in one of the other event listeners, because
XMLHttpRequest#abort() should be synchronous, and the abort and loadend events
are dispatched synchronously.

So, this simplifies the test and avoids relying on setTimeout(), which is
nice, and potentially avoids missing assertions in non-compliant browsers.