PromiseProxies should have content or a reason when settled

Fixes #5325
actually lets use `setProperties` to just set them in batch