I point out also the following post that somehow is connected to this one:
Would be nice if you can do a quick try and confirm this.
Two hypotheses come to my mind:
1 the CPU are waiting for a block to block reading (e.g., small blocks to be read from the disk in a block by block schema. In this case the IO bottleneck is the answer. This is not explaining why why using the GUI is faster, though)
2The blocks to be processed are stored in the ram but they are too small and they are quickly processes (in this case we have an overload bigger than the processing time).
Then, together with the developers, it would be useful to dig into this problem and eventually fix it by understand how to properly setting the gpt.vmoptins.
Thanks