I also had this problem yesterday. Had 5.0.1 on my iphone 3gs, with ipad baseband. When I tried to downgrade to 4.2.1, at about 75% phone restarted, went into recovery loop.
Solution: the solution i found was from somewhere in this forum. While being in recovery loop, put your phone into DFU mode and use tinyumbrella to ~fix recovery~. Worked like a charm for me. Rebooted into perfectly installed and jailbroken 4.2.1.
Further info> to downgrade I used snowbreeze to make a signed 4.2.1 firmware, hacktivated and with ipad baseband option ticked. I then put it into Pwned Dfu, opened tinyumbrella with tss running and restored.