Thanks for sharing this. It took me several hours to solve the problem to implement suspend on my Intel 965 desktop. I also found http://wiki.debian.org/Suspend very useful to understand the process.
From what I have learned, HAL is the core of this process as it intercepts both ACPI and Gnome-Power-Manager events and then transfers the control to specific scripts that do the real job. Among the many scripts available, pm-utils are the recommended. So that HAL calls pm-suspend. Now, pm-suspend runs scripts to prepare for suspension and then either calls the kernel to suspend or calls another software that can handle specific instructions or quirks; this is the package uswsusp (userspace software suspend) that provides s2ram. This s2ram can be fed with instructions (quirks) from the pm-suspend defaults file (I used /usr/lib/pm-utils/defaults. Now, as from HAL 0.5.9, HAL can also pass the the options that pm-suspend will send to s2ram, if the hardware is recognized, in this case, I think, pm-tools default editing is not needed.
In my case after verifying that suspend was successful with s2ram -f -a2, I edited /usr/lib/pm-utils/defaults to pass those parameters to s2ram. Then I verified that pm-suspend worked… checked Suspend from the Gnome applet and then from the power-off button. Finally, I could go to bed.
However, I first tried to create /etc/pm/config.d/s2ram to pass the options but it didn’t work with pm-suspend as you described.
Thanks.
Ramon