using exceptions to control flow
leveraging the query middleware in the example tests
Task<TResult> is not covariant
possible NRE
putting both commands and queries through same exception handling pipeline
Revert "no need for await here"

This reverts commit 005638a011add8d67f792565dbda03fd4fb8c7ff.
translating exception to exception model