When an actor ticks, it will call into the LatentActionManagers “ProcessLatentActions” method using its own DeltaTime, which means this DeltaTime will observe effects of Custom Time Dilation.
void AActor::Tick( float DeltaSeconds )
{
// Blueprint code outside of the construction script should not run in the editor
// Allow tick if we are not a dedicated server, or we allow this tick on dedicated servers
if (GetWorldSettings() != NULL && (bAllowReceiveTickEventOnDedicatedServer || !IsRunningDedicatedServer()))
{
ReceiveTick(DeltaSeconds);
}
// Update any latent actions we have for this actor
GetWorld()->GetLatentActionManager().ProcessLatentActions(this, DeltaSeconds);
…
However, if you call SetActorTickEnabled(false) on this actor it will no longer call this method.
Later when UWorld calls CurrentLatentActionManager.ProcessLatentActions(NULL, DeltaSeconds); (LevelTick.cpp:1237). This will process any latent actions which have not yet been processed this tick under world Delta Seconds. If you have some kind of periodic functionality on an Actor that uses a Delay rather than a tick, that speed now ceases to obey the Actor’s time dilation.
I would expect the code around line 112 of LatentActionManager.cpp to check if the current object is an Actor and if so, multiply DeltaTime by Custom Time Dilation and Tick the Latent Object with that time.