Which version of halconfig are you using, and with what command line parameters? Also, do you have an SP3.cab in c:\windows\driver cache\i386?
It sounds a bit like mini-setup didn't do hardware detection. Did you perhaps run sysprep without the "detect non-plug and play hardware" checkbox enabled? This is a treacherous litle checkbox. In an earlier version of sysprep, this checkbox was labeled something like "perform hw detection" and you would have enabled it without thinking. I don't know why MS changed the text - the way it is phrased now, it looks as if you don't normally need this option. Wrong!
What's supposed to happen is as follows:
1. HalConfig replaces hal files.
2. Machine reboots into mini-setup.
3. As part of PnP HW detection, mini-setup installs the proper HAL. The right hal files were already in place but the PnP database in the registry doesn't reflect that, so mini-setup copies them again - again from sp3.cab.
4. Machine reboots after mini-setup.
If at first login, you get "windows has finished installing new devices", that suggests that step 3 hasn't happened. What was supposed to happen during step 3 is only happening at step 4. The one way I am aware of to get this behaviour is to run sysprep without the relevant checkbox enabled.