I did forget to mention that timeline (playables) processes between Update() and LateUpdate(), so Awake, Start, OnEnable will be called for anything enabled in the scene .
I’m not sure that the behaviour is broken, actually. If the scene default of a gameObject is ‘on’, then Awake is expected to be called when the scene loads. Timeline should not break that contract.
But you can probably get the behaviour you want with a script that calls playableDirector.Evaluate() in an Awake() method. That will force evaluate the first frame of the timeline.