In 2019.3 we have made a fix to ScriptPlayables that could potentially affect your custom tracks in Timeline.
ScriptPlayableOutputs have been changed from a pre-order to post-order traversal. That means that ProcessFrame on PlayableBehaviours generated from clips/PlayableAsset will now get called before ProcessFrame on PlayableBehaviours generated from TrackAsset/GetTrackMixer().
PrepareFrame remains unchanged. If you require the old ordering (track, then clips) then use PrepareFrame instead.
I hope this is a welcome change. Our intention was to always have ProcessFrame work this way, as it supports a data flow of clips to tracks to bindings.