`addScope()` can throw and exception, but I think that results in promise being resolved. Is there any way this function could never be called? Maybe it should have a timeout of a minute or so?

Also, this is probably a good case for a `PerfUtils` timer to help keep track of startup time.