Android - What is my phone doing when the boot takes a long time?

Download and install the Android SDK. On your handset's manufacturer website find and download USB drivers for your device, and install them. On your phone go to Menu -> Settings -> Applications -> Development and enable the USB debugging option. Now when connect the phone to your PC via USB, you should see the "USB debugging connected" ongoing notification.

On your PC (I'm assuming Windows) start command prompt by going to Start -> Run, typing "cmd" and pressing enter. Navigate to the "platrofm-tools" sub-folder of where you installed the Android SDK (e.g. "C:\AndroidSDK") by typing the following:

cd C:\AndroidSDK\platform-tools

and press enter. Now issue the following command:

adb devices

and press enter. If everything was installed correctly, the adb service will start and show your connected handset's serial number:

* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
HT035xxxxxxxx device

You can now issue the adb logcat command to review your handset's logs in real-time. Reboot while your handset is still plugged into USB (you will need to re-issue the adb logcat command when the phone restarts) and you will be able to see what your phone is doing during those long boot-up sequences.