In elementmanager.go triageTimers, we don't propagate the "kind" of window so we can't switch between global windows or interval window decoding. This is technically related to the coder-redesign used for timer decoding, preventing use of the existing window coders that rely on io.Readers.
This may also at least take into account custom windowfns (which are prefixed with their maxEventTime timestamp, but may also have arbitrary bytes afterwards depending on the coder), but this isn't a required case for this issue (as the element coder could be a "known coder" instead of merely being length prefixed. Must be handled when #31921 is handled.
Resolving this will allow the Python Validates Runner test test_windowed_pardo_state_timers to pass.