I've had a look over all the details again. As you said there is a swap partition on the USB stick. When you try to boot without that plugged in, the initrd waits for it - because it really wants all swap partitions. To help with testing, it would be good to tell the system to ignore that swap partition. So boot with the USB plugged in (using any kernel that works), then turn of the swap to /dev/sdd2 (swapoff /dev/sdd2) and unplug the USB. Then make sure it isn't mentioned in /etc/fstab (maybe by uuid) and rerun mkinitrd. This should rebuild all initrds without any knowledge of the USB. Then you should be able to boot everything without the USB plugged in. So then boot the problematic kernel, plug in the USB, and try to see what happens. If the system locks up completely we will need to try to get information from sysrq. If it doesn't, then using 'ps' to find the process that has hung (probably in D state), and the "cat /proc/$PID/stack" to find out what it is doing. Hopefully some of those steps will get us nearer at least.