promote promise to be top-level
PromiseThread -> ThreadPromise; PromiseFiber -> FiberPromise
should promise the errors from the future as well
kill the thread if timing out, don't otherwise