I’ve seen your other thread as well (with the ensure stack), and neither of these snippets seem to correspond to that ensure stack, is there a third version? I don’t see how the provided snippets register the component too early, there is no manual RegisterComponent call.
AddOwnedComponent in APerceptor::APerceptor seems unnecessary, but it shouldn’t be causing any issues on its own.
UActorComponent has bAutoActivate, way easier than manual Activate() in UDynamicPerceptionComponent::BeginPlay.