What is the purpose of the 1-frame delay of GraphOwnerControl?
Its OnExecute starts a coroutine that immediately yields.
If this delay is not avoidable there, what is the proper way to execute a BT (i.e. more complex logic than an ActionList can take) without incurring a delay?
The purpose of 1 frame delay is mostly needed for when using GraphOwnerControl for pausing or stopping the same GraphOwner which the task is used in (self). With that said, I have altered this, to only yield 1 frame when the above is the case.
Please find the updated GraphOwnerControl task attached bellow and let me know if that works for you.