Are you sure the Windows numbers are the same when comparing a normal and a headless build? I would expect you to see the same high CPU values on the Windows build in headless mode.
Headless builds run as fast as possible since there is no vsync to wait for. And with vsync disables you can use the update frequency to control how many update()s you get per second. But the engine will still run at a high speed which explains the high CPU usage.
I’m not sure how well the main loop of the engine is designed to actually really sleep in between updates. @JCash will be able to provide some input here. I totally understand that the needs in a headless build are different from a normal build, especially if the intention is to run the headless build on a cloud server, possibly also running multiple instances on a single machine.