You are correct; in DOS (and in fact during the POST/BIOS), the CPU load is 100%.
This is because back when DOS was first written (as well as the old BIOS code on which later versions were based on) CPUs were not nearly as vulnerable to overheating as they are today. In the “old days”, a 100MHz CPU would produce very little heat and often did not need more than a simple fan to keep it cool. (Older ones like 66MHz CPUs often did fine with just a heat-sink, and even older ones like 20MHz had nothing at all!)
Because of this, much old software did not bother idling the CPU with the HLT instruction during loops (which are the heart of any sort of useful program). DOS itself is no different. When you see the DOS prompt, it is sitting there in what basically amounts to a while loop like this:
while (!done) {
getkey();
process();
}
This is not much different than an infinite loop like while(1); which instantly drives the CPU load to 100% and heats it up.
(This is why I try to spend as little time in the POST/BIOS/DOS as possible on my “modern” system, or at least I make sure that the fan is spinning at 100% before I do.)
Fortunately, there are some options, including one from Microsoft themselves. With the advent of virtual-machines, there was a renewed interest in DOS and this issue was noticed. One solution was provided by Microsoft in the form of idle.com which they packaged with Virtual PC. Another solution, dosidle.exe, comes from a VMWare-oriented page.
Basically what these programs do is to load a TSR that injects HLT instructions, thus causing the CPU to do nothing and cool down. Some are simple while others have extra options.
If you connect your system to a power-meter like the Kill-a-Watt, you can observe this numerically as the system will draw significantly more power while in the BIOS editor or DOS, paused POST, or even the OS boot-menu. However, when a power-aware OS loads, the power usage drops (in fact, even running idle.com in DOS will drop it to the same amount). The specific difference will vary, but 30-50W is not uncommon.
Another way you can see this in action is with a virtual machine. If you pause the VM at the POST or enter the BIOS configuration tool, you will see the CPU load on the host being high (100% on a single-core processor, 50% on a dual-core/threaded, etc.) If you boot into DOS in the VM, the host’s CPU load remains high until you execute idle.com, at which point, it drops to ~0%. It also drops when you boot the guest into Windows or other modern OS.