I think you have to be a bit clearer about what exactly you want to achieve. The snippet you shared does not mention that the second measurement should be of the same type but I suspect that is what you want? In that case both statements should have a filter condition on the type.
If you have measurements coming in like this
1 2 3 4
my example would execute the block of the innermost listener three times:
1 & 2
2 & 3
3 & 4
For 1, the outer listener matches, which starts an instance of the inner listener. When 2 arrives, the outer listener matches again and another instance of the inner listener is started. The first instance of the inner listener matches as well and terminates afterwards. For 3, the outer listener matches again and a third instance of the inner listener is started. The second instance of the inner listener matches as well and terminates afterwards.
The behavior with the follow-by operator should be very similar though it can subtly vary depending e.g. on whether you do “on all A() → B()” or "on all (A() → B()).