OK, for anyone that might read this one, I figured this out today:
I created my project from an example project for the K22F Freedom board. For whatever reason, the project came with several clock configurations. I switched the init clock config to the fast runtime configuration and away things went. That was all fine and good, but I still couldn't get the SPI bus above 2.1 MHz.
It turns out that even though I was only using the one clock configuration, the PEx SPI module, in its desire to be helpful, freaked out that there were clock configurations that would not work with the higher speeds if I chose to use it. Now, I disagree with that approach since I could have clock configurations that I might run that I would NOT use SPI on, and PEx was denying me the opportunity.
Rather than risk anything breaking by deleting any of the unused clock configurations, I simply set them all to high speed and viola, I can now clock at much higher frequencies. :smileyhappy:
Of course, none of this helps explain why my soft SPI code is SO unbelievably slow. :smileysad: