This looks like normal behavior. The xrWaitFrame function synchronizes the framerate with the frame timing of the VR hardware. If the application isn’t submitting and rendering the frame in time, it will block until the next frame. It also throttles the framerate down after several missed frames, like you can see on the first image where the baseline goes from 45 fps to 30 fps.
Not sure, but it seems like you might be CPU bound by the render thread.