refactor: allow one message of a single type to be underway in each instance of CMessagePump