The problem was caused by the SATA connections on the motherboard. The devices were not connected in numerical order. That is, the internal drive was not connected to the SATA1 port, etc.
I purposely tried some random /dev/sd(x) options in the grub bootloader. That is when I noticed the mobile drive was listed by the kernel as sda and the internal was sdb. That had me staring glassy-eyed for a while.
I next manually edited grub on-the-fly with the next boot and told grub to find the mobile drive root directory at /dev/sda rather than sdb. The system booted.
The mobile drive does not have a bootable MBR. Only the internal drive does. Thus, the BIOS was booting from the correct MBR and grub was booting the kernel correctly. Yet because the drives were connected in an oddball sequence, the kernel decided the mobile drive was sda and the internal was sdb. The kernel was assigning device nodes based upon how the devices were connected on the motherboard.
I never noticed this before because there is only one internal hard drive. Only today had I begun wanting to use the mobile tray and a second drive for some special tasks.
In hindsight the problem was me configuring grub based upon how I thought the devices were connected and not how they actually were connected.
After I reconnected the devices in the correct sequence on the motherboard, the system finally booted from either drive as expected.
Weird. I have no idea how I might have got the connectors crossed like that.
