await() blocks until the background future of a non-blocking
genproc() run has resolved, then returns a genproc_result
with log, n_success, n_error, duration_total_secs, and
status populated. If the wrapper future itself crashed (a rare
case — user errors inside individual cases are caught by the
logging layer and are not wrapper crashes), the returned
object has status = "error" and a populated error_message.
Details
await() is idempotent: calling it on a result that has already
been materialized (or was synchronous to begin with) returns it
unchanged.