Да, это предполагаемое поведение.Конец глобального окна должен быть несколько меньше максимального значения временной метки, которое возможно в Beam, на практике часто обозначается как + бесконечность.
Из исходного кода GlobalWindow.java :
// Triggers use maxTimestamp to set timers' timestamp. Timers fires when
// the watermark passes their timestamps. So, the maxTimestamp needs to be
// smaller than the TIMESTAMP_MAX_VALUE.
// One standard day is subtracted from TIMESTAMP_MAX_VALUE to make sure
// the maxTimestamp is smaller than TIMESTAMP_MAX_VALUE even after rounding up
// to seconds or minutes.
private static final Instant END_OF_GLOBAL_WINDOW = extractMaxTimestampFromProto();