We weren't using the callbacks at all before, and these errors feel VERY global

I mean - decoupling wise, I'd prefer is MessageManager emitted an "error sending" event that anything could listen to, but for sending errors, I don't mind the idea of calling `ThreadUI.showErrorMessage` directly.