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
this.stageToKeys = new StageToKeys(completionStage);
        this.keyToSequences = new KeyToSequences(completionStage);
        this.completed = new TreeSet<>();
        this.toCheckForMissing = new TreeSet<>();
        this.maxSpanInNanos = maxSpan.nanos();
        this.limit = limit;
        this.missingEventStages = missingEventStages;
        this.firstPositiveStage = calculateFirstPositiveStage();
        this.lastPositiveStage = calculateLastPositiveStage();
        this.missingEventStagesExist = calculateMissingEventStagesExist();
        this.circuitBreaker = circuitBreaker;
    }
    private int calculateFirstPositiveStage() {
        for (int i = 0; i < missingEventStages.length; i++) {
            if (missingEventStages[i] == false) {
                return i;
            }
        }
        return -1;
    }
    private int calculateLastPositiveStage() {
        for (int i = missingEventStages.length - 1; i >= 0; i--) {
            if (missingEventStages[i] == false) {
                return i;
            }
        }
        return -1;
    }
    private boolean calculateMissingEventStagesExist() {
        for (int i = 0; i < missingEventStages.length; i++) {