Testing asynchronous systems is very difficult and there are a small number of supporting tools, e.g.:
A Rx Extensions approach would be more declarative and hopefully easier to specify correctly. It is certainly best to avoid a design where the test harness needs its own tests to ensure correctness!
These discussions of log analysis using Rx support this concept: