SpawnActorDeferred not working as intended?

I think it’s working as intended (although tricky to understand at first).
SpawnActorDeferred: WILL NOT run Construction Script of Blueprints to give caller an opportunity to set parameters beforehand.”

It says blueprints, but you should be able to override OnConstruction in C++ to do what you want. In case of deferred spawning, OnConstruction will not run until you call FinishSpawningActor (follow UGameplayStatics::FinishSpawningActor to see what happens when it’s called).

Also see:

https://forums.unrealengine.com/development-discussion/c-gameplay-programming/12970-beginplay-vs-constructor?27461-BeginPlay-VS-Constructor=