I think the simple solution is to exec "gconftool-2 --shutdown" as the last thing gnome-session does before exiting, or perhaps even in the X scripts in xinitrc. If you wrote and tested a patch along those lines it'd be useful.
Another possible solution is to have an X server monitor process for gconfd; basically gconfd would fork/exec a tiny little program that simply connects to the X server and sits there, exiting when it loses the X connection. gconfd would then exit when this program exits. This is conceivably a more robust approach and still pretty easy to implement.