Shareable asynchronous result (like C++ std::future) with continuation for Rust. Wait free promise::resolve and future::{then, map, flat_map}. Also future::get if resolved already