Thanks man, this worked. Clumsy though. And it seems to only work inside another pulumi call, I assume because the other pulumi calls are also deferred/async as part of the engine.
For example, calling that additional wrapper outside of a pulumi API still results in a coroutine object being returned. Which means that any decision making on the result of the call has to also be encapsulated in an async def.