Windows has this irritating bug/undocumented feature/problem that if certain combinations of high memory settings (usually the more esoteric ones like buffershigh, fileshigh and fcbshigh) are present in your config.sys, it will hang on the 'windows is now restarting' prompt. This will also prevent the machine from displaying the 'it is now safe to restart the computer' screen, or switching off if it's an atx machine. It can also manifest itself as the machine hanging on the 'windows is now shutting down' screen.

There are two solutions, listed in reverse order of discovery: