Why does increasing the complexity of a material increase the time taken by FRDGBuilder::Execute() by more than the material?

I have a material that sums up some sine waves inside a Custom block as part of its rendering process. I’d like to increase the number of waves used, but it’s having some strange performance effects.

In both cases, everything that runs on the GPU fits within my 11.1ms render budget (for 90fps). The material rendering increases from 1 to 4ms, but the GPU tasks still only take about 8ms. However, my framerate drops in half because FRDGBuilder::Execute() spikes from 4ms to 12ms. Most of that is from WaitUntilTasksComplete in EndFlushResourcesRHI, which goes from 3.5ms to 11ms. It doesn’t seem like it’s actually waiting for anything though, because the GPU finishes its tasks within 5ms of WaitUntilTasksComplete starting, and none of the other CPU threads are doing anything in that time.

How can one material taking longer to run on the GPU but not exceeding its render budget cause other tasks running on the CPU to 4x in execution time?

I suspect that it was the VR sync thing that ensures either 90fps or 45fps.