Phrasing my query a slightly different way, I found this answer from Maxim:
You can make queries from the mocked activities. This way you can verify that at the point that activity is invoked the query returns the expected value.
This definitely works and is probably what I will do for now barring any other answers, but it does feel funky. For one, it creates a really strange legibility. The assertion doesn’t “live” at the point of the test where it runs, but instead in the mocked activity closure. And while I understand that querying from an activity is logically the same as querying from the “outside world”, I don’t know how clear that would be to future maintainers or people on my team who read this test.