[433] Use a local variable rather than one larger in scope

As per review, don't use self._session for the check to see if there is
an existing message queue running. Rather, use a localally scoped
variable that will get cleaned up when the function exits.
[433] Verify the existing daemon behaves correctly after multiple invocations

As per review, update the tests to ensure that the existing message
queue daemon still works even after we have had a failed attempt to
start a second copy of the daemon.