Around 2.6.8, a separate thread was spawned to detect USB devices because some devices have to perform lengthy initialization. Because the boot continues in parallel, the kernel then tries to mount the root filesystem and the USB device isn't discovered yet. I found a patch at http://dedasys.com/freesoftware/patches/ which fixes the problem, and made the necessary changes to make it compile with 2.6.18. My laptop now can boot from a USB hard disk, which it could not without this patch. From inspecting the patch, it looks as though it waits for USB detection to complete if and only if the root filesystem can't be found, so I think it's a candidate for inclusion into the gentoo patchset.
Created attachment 101312 [details, diff] blkdev_wakeup-2.6.18.patch
http://www.reactivated.net/weblog/archives/2005/11/booting-linux-userland-from-an-external-usb-flash-disk/