`addScope` only throws if you redefine a preferences scope, which we wouldn't do in our own state manager (that's a misuse of the API). If someone did change PreferencesManager to accidentally redefine a scope, Brackets wouldn't launch. (The promise wouldn't ever be created, so `_smUserScopeLoading` would be undefined)

Agreed about the startup time. Would that just be:

```javascript
PerfUtils.addMeasurement("User viewstate loaded");
```

in the line before `_beforeHTMLReady()`?