I think 20 seconds to complete shutdown is quite reasonable. Mine takes about 30 seconds. I don't really notice it because I usually click the shut down button and walk away from the PC.
I do not know how many programs you are loading at startup. They will all need to be stopped by Windows on shutdown if you do not stop them manually first.
Virtual memory settings can make a difference. If you have a swap file managed by Windows on your system drive ( usually C: ) and if it is fragmented this can cause a slight slowdown. However you say this is a new XP installation, so I would not suspect this. A fixed size swap file on a different partition (or drive, even better) can help I think.
But, Walter, when I was searching for information about long shut downs on Windows XP, one thing became clear: the problem times were being quoted in minutes, two, five or even ten. Many people who had solved the problem reported with satisfaction that their shutdown time was now "only" 30 seconds! So I would not worry too much. This is a new install and you are watching it carefully like a new baby and every little thing is noticeable...
Why don't you just hibernate? My system hibernates in about 5 seconds. XP is designed to work well like that.
However, some more tips:-
Long wait times at the "Saving your settings" screen when logging off is typically indicative of an application does not properly release resources when closing, and hence causes your machine to wait and eventually time out. Information on troubleshooting this specific problem can be found at
http://support.microsoft.com/default.aspx?kbid=837115
Windows XP Professional contains the Group Policy Editor which can be used to alter settings. One security option allows the page file to be cleared at system shutdown. When enabled, this same setting forces wiping of the hibernation file. Both of these processes can be lengthy, fooling the user into thinking shutdown has hung. To verify if this setting has been enabled (it has to be set manually), perform the steps listed.
[Start] [Run] and type [gpedit.msc] then click [OK]
Drill down to [Computer Configuration] [Windows Settings] [Security Settings] [Local Policies] [Security Options]
Verify the proper setting in the right pane under [Shutdown: Clear Virtual Memory Pagefile]