Refactored local::promise to be standard conformant

I guess having simple bools here is safe because promises aren't shared?