RSR-129 Distinguish between HB stopping and erroring...

... and emit the correspondingly correct event.

One deficiency is that the http status in a HeartbeatErrorEvent will actually be the last _good_ status, since no status was returned.