You are correct; it's transcoding a buffer and then streaming until it needs to transcode some more. You can demonstrate something similar by using JRiver to convert the format of a video file triggering "pure" transcoding without streaming. Under those circs IME the processor usage just goes to 100% and stays there until the job is done. I have an i7 and I get max CPU utilization whenever transcoding is happening (whether periodically while streaming, or steady state while converting videos); it just takes less time to do it than it does on my i5.
In my experience JRiver is generally pretty "smart" about the loading, in that if other things are going on simultaneously JRiver doesn't seem to "steal" CPU priority from other processes (it's "nice" in the Linux sense). It just seems to use whatever it can get it's hands on when it needs it. For example, I often use convert format for transcoding while doing other things on the computer and listening to music at the same time. The CPU will be completely pegged, but music playback and web browsing will be just fine. I haven't tried running it up against other processor intensive tasks, but regular music playback (with convolution) and general web browsing type activity seem unaffected (at least on my i7, I don't use my i5 as a workstation).
What I haven't tested is what happens when multiple Gizmo clients try to make demands at the same time (i.e. how well does JR prioritize multiple transcoding requests). I have no idea how to control/dock resource availability on a windows box, but am interested if anyone here does.