msg: Make SimpleMessenger shutdown safer


In the case where no dispatchers were ever added, previously
we would throw an assertion in wait().

This was a path that could come up in cases where other init things were failing and someone was tearing down their messenger early.