BackupPrefFile writes go through PreferencesImpl::WritePrefFile, which coalesces all writes through a single sPendingWriteData slot destined for the profile prefs.js. A backup targets a different file with a filtered pref set and carries a MozPromise. When the slot was already occupied, the backup took the coalescing early-return, dropping its MozPromiseHolder without settling it and leaving its filtered data in the slot. Give writes that carry a promise holder their own PWRunnable with their own data so they never touch the shared slot. Differential Revision: https://phabricator.services.mozilla.com/D311551