A query like 

```
sequence by user.name with maxspan=90m
![ authentication where ... ]
[ authentication where ...]
![ authentication where ... ]
[ authentication where ... ]
![ authentication where ... ]
```

can result in a NullPointerException

```
java.lang.NullPointerException: Cannot invoke "org.elasticsearch.xpack.eql.execution.sequence.Match.ordinal()" because the return value of "org.elasticsearch.xpack.eql.execution.sequence.Sequence.matchAt(int)" is null
        at org.elasticsearch.xpack.eql.execution.sequence.TumblingWindow.prepareQueryForMissingEvents(TumblingWindow.java:313)
        at org.elasticsearch.xpack.eql.execution.sequence.TumblingWindow.checkMissingEvents(TumblingWindow.java:219)
        at org.elasticsearch.xpack.eql.execution.sequence.TumblingWindow.payload(TumblingWindow.java:717)
        at org.elasticsearch.xpack.eql.execution.sequence.TumblingWindow.completeBaseCriterion(TumblingWindow.java:499)
        at org.elasticsearch.xpack.eql.execution.sequence.TumblingWindow.baseCriterion(TumblingWindow.java:405)
        at org.elasticsearch.xpack.eql.execution.sequence.TumblingWindow.lambda$advance$6(TumblingWindow.java:356)
```
x-pack/plugin/eql/src/main/java/org/elasticsearch/xpack/eql/execution/sequence/SequenceMatcher.java
}
    private boolean hasCandidates(int start, int stop) {
        for (int i = start; i < stop; i++) {
            if (stageToKeys.isEmpty(i) == false) {
                return true;
            }
        }
        return false;
    }
    Set<SequenceKey> keys(int stage) {
        return stageToKeys.keys(stage);
    }
    Set<SequenceKey> keys() {
        return stageToKeys.keys();
    }
    List<Sequence> completed() {
        List<Sequence> asList = new ArrayList<>(completed);
        return limit != null ? limit.view(asList) : asList;
    }
    void until(Iterable<KeyAndOrdinal> markers) {
        keyToSequences.until(markers);
    }
    /**
     * Called when moving to a new page.
     * This allows the matcher to keep only the last match per stage
     * and adjust insertion positions.
     */
    void trim(Ordinal ordinal) {