@joelrbrandt -- Maybe this is obvious, but we should clarify that in the "true" case Live Development starts immediately.

Also, as a JS idiom, I think in other places where we've needed this pattern, we've generally made the function always return a promise, but immediately resolve or reject it in the case where we don't have to wait. That simplifies the logic for clients, although it's slightly less efficient. What do you think?