Well, I’ve managed to resolve pretty well all the issues. The only issue left is caused by Linux’s ACPI sub-system not being able to properly suspend without crashing the machine.
On my old laptop I got around this by using APM rather than ACPI for power management. Unfortunately, the NDIS windows driver running under ndiswrapper won’t run unless ACPI is fully in control.
I’ve upgraded the system to the latest Linus kernel, 2.6.6, and made sure all the optimisations for the Athlon 64, including the PowerNow! power control options. Now the CPU fan runs quietly when it runs at all and the battery lasts a very much longer time.