[async.async_block] added: guards against returning twice