I still don't understand how you calculate the max_speed to be 5 for your first event (it should be 2, isn't it?) but the attached workflow should do pretty much what you need. You can always adjust how the max_speed is calculated by changing the aggregation method in the GroupBy node.
The core of the solution is the code in the Java Snippet (simple) node, used to recognize that start/end of each event and number them accordingly. The rest is just filtering and aggregation with a GroupBy node.
Probably it could have been done with loops and time/series as well, but this way seems pretty straightforward to me.