If SpeedFan starts and then hangs while detecting your hardware, it might be due to a problem with your SMBus. Most hardware monitoring chips nowadays are connected to the SMBus. Anyway: it might be that you need not to access the SMBus in order to get hardware monitoring info. You can try this by running SpeedFan with the following command line switch:

/NOSMBSCAN

If SpeedFan runs just fine when started using the previous command line switch, then it means that there is some problem between SpeedFan and your SMBus.
I would like to know about problems and, therefore, please contact me and I will do my best to solve that issue.

In order to simplify the task of solving this incompatibility, I've added a special command line switch:

/SMBDEBUG

When you start SpeedFan using this command line switch, SpeedFan will avoid detecting your hardware monitoring chips and will open instead a debug window.

This window will help you scanning your SMBus, but will do that in several steps, to try to ease the task of detecting what's going on.
If you're just curious, you can run this debug window even if SpeedFan works flawlessly on your system :-)
This debug window will generate a file named SMBDEBUG.NFO located in the same directory as SPEEDFAN.EXE. This is the file I need to start understanding what's going on with your system and it is continuously updated by SpeedFan while debugging.

In the following explanation, we will assume that the system hangs when the button you pressed disappeared and no other button appeared after something like a couple of minutes.

In order to start debugging, you have to (guess what? :-)) press START. SpeedFan will start scanning your SMBus for available devices. This is a quick scan and should not hurt your system (at least, it didn't hurt all the systems I've tried so far :-)). I your system should ever hang while doing this first scan, please, send me the resulting SMBDEBUG.NFO file. You can find that file even after a reboot.

If the program didn't hang, this is what it will look like after a while:

As you can see, SpeedFan is showing which SMBus is currently being scanned. Almost every PC has got at most one SMBus, but some have more than one and, anyway, SpeedFan is perfectly able to handle almost any number of them (this is something I'm very proud of :-)).
In the previous window you can see that SpeedFan is ready to scan the chip located at address $2D (this may vary from system to system). Press the SCAN NEXT ADDRESS button and you will see a running number showing which register is currently being accessed. When the register reaches $FF, SpeedFan will move on the next available address and show the button again.

Whenever available, press the button. If SpeedFan hangs while scanning any of the available addresses, wait for the usual couple of minutes and then send me the SMBDEBUG.NFO debug file. It would be nice if you tell me which were the last scanned address and register.

If everything works fine (i.e. the system doesn't hang), you will see this final window:

Anyway: if your system was hanging when scanning the SMBus and did not when using the /NOSMBSCAN command line switch, then I guess you will never see this window :-)