Count-based filtering without a time constraint
IObservable filteredStream = changes.Buffer(3);
How to introduce inactivity reset?

But how to introduce a timeout TimeSpan tooLong so that the counting would restart from zero whenever the interval between two values exceeds this maximum?
I think this is what you’re after.