More robust unit tests, less race conditions

 - Bump timouts value to avoid false unit test errors: Basically, some
   timeouts are a little bit to short for fast testing.

 - Fix transiant unit test failure on pubsub.
     - you log all msgs
     - you send one msg
     - heartbeat msgs are logged
     - you check for only one msg: bad
     - you check if your msg appars among the heartbeats: good

    This was a beautiful race condition, since most of the time, the
    heartbeat is slower than how fast you send and test your msg.

 -  Wrap in coroutines.

    HeartbeatOnChannel can raises to its parent at any time.
    Encapsulating the code in its own coroutine will reduce race
    conditions.