It is really interesting to know why the code inside FEngineLoop::Tick() is written in a way that sleep happens at the beginning of the frame (for the time calculated based on data from previous frames).
The alternative way would be to sleep after all the work is done: this approach allows to have frames that last exactly 33 ms (until the work that needs to be done is not taking more time).