Nice!
How about renaming `_maybeActivateInTheFuture()` as `activateInFuture()`? Then we could know the logic more easily. For example, 
```
if (!this.timespan.containsNumeric(Date.now())) {
  this._activateInFuture();
  return;
}
```
The above logic just clearly show that we will activate the current time item in the future timing when the timespan is in the future.