Disallow chaining of Promise.start()

This kind of chaining can open the door to a race condition where an older disposable (from `start().signal.observe`) can overwrite a newer disposable (set within the observation closure).