Fix: avoid race conditions with re-entrant event processing in sync. XHR