Simon,
The best place to get familiar with power management is to start reading kernel source. That may sound akward, but if you can read c language, it shouldn\'t be hard to get an idea fairy quickly. Like Stu says, kapm-idled thread has nothing to do with power management control, all events get sent thru apm api and proceeded by the apm kernel driver (zaurus has no apm bios, so driver accesses hardware directly). And I think Anton is right that Qtopia doesn\'t relay on anything, all it probably does is just sends apm suspend event when thinks it\'s a right time to go to suspend. Resume is controlled by kernel via installed hook to On/Off button. Screen backlight and brighteness is different story. There was a sample code on Sharp dev site that demonstrated how to control that thru various IOCTLs. I should have it somewhere, let me know if you need it.
If you have a strongarm-based Zaurus, take a look at the following files:
linux/arch/arm/mach-sa1100/collie_apm.c
linux/arch/arm/mach-sa1100/collie_power.c
For xscale-base Zaurus, looks at:
linux/arch/arm/mach-pxa/sharpsl_apm.c
linux/arch/arm/mach-pxa/sharpsl_power.c
Lineo\'s code is a bit of mess, but still you should be able to get an idea.
I hope that would help...
-albertr