Instead of having two global prefs variables, what about having this class create itself it two different modes. So, make this ctor private:
    PreferenceStore._(this.storageArea);
and adding two static methods:
    static PreferenceStore createLocal() => new PreferenceStore._(chrome.storage.local);
    static PreferenceStore createSync() => new PreferenceStore._(chrome.storage.sync);

Then, if we want to keep singleton copies of the two storage types around somewhere, we can do that. Thoughts?