The IAsyncInfo implementation is the same, and it's where the complicated details reside.
Yes, and none of those complicated details are needed here (since we want just an already-completed async), they are going to be dead code, with additional need to provide proper callbacks. There is seemingly no way even to complete it at once without going through thread pool, without some changes? This simple IAsyncInfo variant is not so much of code, and `IAsyncOperation_SpatialPerceptionAccessStatus` will anyway be different. Do we really need this? Maybe if you see some use in a generic "typesless" synchronous async, I'd rather try to do that one?