I just ran into this in UE5.0.3 and thought it might be useful to note what I saw:
- The behaviour as described still seems to be happening.
- Overriding GetTickableGameObjectWorld didn’t seem to alter the behaviour at all.
- After BeginPlay (at least when PIE) I saw three calls to IsTickable for each object. Confusingly, in two of those calls GWorld->HasBegunPlay() return false, and in one it returned true.
- However just the call to IsTemplate seemed to be enough, i.e. if I only return true from my overriden version of IsTickable() (if the class is not the default object) then I only see a Tick called on the correct object, and only when playing.