RESOLUTION: Blacksn0w Reboot Loop / No WiFi Signal / Reset Network Settings / Unlock
In order to quell the rising number of posts that we have in relation to this issue, I'm putting everything into one post and will make it sticky.
iPhone 3G/S gets stuck on a boot loop where the phone boots, shows the Apple logo (or GeoHot's face, depending on where you get the error), gives the Apple spinner, sits, then reboots, and repeats the process over and over. Alternately, the iPhone 3G/S gets stuck on a boot loop, shows the Apple Logo (or Geohot's face), gives the Apple spinner, and sits. This usually occurs on iPhone 3GS models with the latest bootrom, after a user has told the device to "Reset Network Settings" after WiFi connectivity has been lost. The problem can also occur if after the iPhone soft reboots after you have lost WiFi connectivity, for example, after an application install such as MobileSubstrate / SBSettings.
This is caused by a race condition that exists on the iPhone 3G/S related to the WiFi implementation and is UNRELATED to the jailbreak and unlock itself -- this occurs on both jailbroken and unjailbroken phones as well as carrier-locked and software-unlocked phones. Admittedly, it occurs more with soft-unlocked devices, but this is because the unlock exacerbates the existing problem with the race condition -- not because the unlock is unstable or potentially dangerous (it's not!). Quite the contrary, the most updated unlock actually resolves the race condition -- which Apple's own software still has yet to resolve. That said, this issue CAN be fixed in several methods and the newest version of blacksn0w (RC2 Final) contains a fix that solves this problem permanently.
UPDATE: Preferred FIX #1: (This only applies if you: ARE using an iPhone 3GS, DO NOT have a 3.1.2 SHSH on file, HAVE NOT previously upgraded to 3.1.3, and HAVE a legitimate SIM to activate with)
1) Follow the steps as documented by the dev team here: http://wikee.iphwn.org/howto:removellb
2) FOLLOW THE STEPS VERY, VERY CAREFULLY. Understand that this is a LAST DITCH effort -- if you do this wrong, go too quickly, don't follow instructions, or ignore a warning, YOU WILL make the situation worse.
3) This process completes with your phone being restored to 3.1.3 without the baseband being updated.
4) Use the latest Spirit to jailbreak.
5) Use Blacksn0w RC2 to unlock.
FIX #2: (Not as reliable as FIX #1, but has less prerequisites and doesn't require re-flashing)
1) Download the latest version of blackra1n.
2) Plug the phone into your iPhone USB connector, plugged into a Windows machine running iTunes and blackra1n.
3) The phone will show as connected but will NOT charge. THIS IS EXPECTED BEHAVIOR.
4) Keep blackra1n open and keep the phone plugged in, and go do something for 8 to 12 to 16 hours. This is a VERY IMPORTANT STEP.
5) When you come back to your phone/PC, your phone should be at the home screen and charged.
6) If you have WiFi when your phone reboots, open Cydia, add the devteam's source (cydia.pushfix.info) and update Blacksn0w to RC2.
IF YOU HAVE NO WIFI AFTER COMPLETING FIX 2:
1) Uninstall blacksn0w (either remove the package from Cydia, or remove /usr/lib/blacksn0w.dylib and re-add the original com.apple.CommCenter.plist)
2) Reboot your phone.
3) You should now have WiFi back.
4) Add the Blacksn0w repository (cydia.pushfix.info) and install Blacksn0w RC2
5) Reboot your phone
WHAT IS REALLY HAPPENING:
When the phone gets stuck in the reboot loop, it is unable to charge via the USB connector plugged into the PC because the iPhone doesn't get that far in the boot process before the race condition exhibits. The device gets far enough to mount the root filesystem and to provide filesystem access over USB, however. When you leave it plugged in and walk away, what you're really doing is allowing the iPhone to completely discharge its battery. When it does this, it will power off. Once it has powered off, it will begin charging via the USB cable. Once it has sufficient charge to power on, it will power on. During the power-on process, blackra1n will see the iPhone and will kickstart it.
This should return your phone to 100% working (and unlocked!) status.
If anyone has any additions or corrections, post them in the comments below and I'll keep this updated.