check for timeout instead of rate, much easier to reason about...
remember ts of most recent message
stream.ts starts at stream creation time.
2.0.0