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
UntilGroup until = keyToSequences.untilIfPresent(key);
        if (until != null) {
            Ordinal nearestUntil = until.before(ordinal);
            if (nearestUntil != null) {
                
                if (nearestUntil.between(sequence.ordinal(), ordinal)) {
                    stats.rejectionUntil++;
                    return;
                }
            }
        }
        sequence.putMatch(stage, ordinal, hit);
        
        if (stage == lastPositiveStage) {
            
            
            if (descending) {
                for (Sequence seen : completed) {
                    if (seen.key().equals(key) && seen.ordinal().equals(ordinal)) {
                        return;
                    }
                }
            }
            tryComplete(sequence);
            
            
            
            
            calculateHeadLimit();
        } else {