When a CLVM cluster comes up, the LVs in the clustered volume
groups are "not available". I can use the heartbeat LVM resource to
trigger a "vgchange -aly", but I'm wondering if there's a way to
configure it to happen automatically. It'd make my cluster config
simpler.

If you are using clvm, you shouldn't wory about volume_list because clvm
allows nodes to activate LVs in all nodes.
Please check what is "locking_type" in lvm.conf . It should be 3 in
RHEL5 so that when clvm starts it can enable all clustered VGs.

I'm using SLES11 SP1, but yes, locking_type is 3. There is no problem
with clvm as far as I can tell - it just doesn't automatically mark the
LVs as available. I have to run vgchange -ay to make them available.
After that, they work.

Please note that cluster should be quorate for clvm to start fine.

Some of my clusters are two-node so quorum isn't possible. clvm is
running with "-q 0", so I don't think it cares. (That's the default used
by the clvm RA.)