Yeah, thats odd. You could add some quick logging in to see where it’s taking time:
FDateTime startTime = FDateTime::UtcNow();
... do your task
FTimespan difference = FDateTime::UtcNow() - startTime;
UE_LOG(LogTemp, Log, TEXT("Step 1 took %f seconds."), difference.GetTotalSeconds());
you may need
#include "TimerManager.h"