I think I finally found the problem and a walk arround.

If I start the process normaly:
/etc/init.d/cman start
/etc/init.d/clvmd start

And make the snapshots source volume of "exclusive use":
lvchange -an volume
lvchange -aey volume

And I try to remove a snapshot:
lvremove -f snapshot

The involved "dm" will get suspended but not deleted causing the eternal hang of the lvm system due to the blocked I/O .

Now. If BEFORE the "lvremove" I execute a built in clvmd restart:
clvmd -S

It will fail to restart it properly. Looking the code I think it is caused because clvmd is trying to pass itself "-E" option but in my current lvm2 version is not declared (2.02.87) . I don't know if I may report this to the lvm-devel :

[pid  2895] execve("/usr/sbin/clvmd", ["clvmd", "-E", "fU6kuI1yVWxAjsu1WmL1TmvishGAZaZNH61u58pM21rrS3t8vyXvzsoiMaB4XHKX"], [/* 0 vars */] <unfinished ...>
[pid  2892] write(2, "Usage: clvmd [options]\n   -V       Show version of clvmd\n   -h       Show this help information\n   -d[n]    Set debug logging (0:none, 1:stderr (implies -f option), 2:syslog)\n   -f       Don't fork, run in the foreground\n   -R       Tell all running clvmd"..., 611) = 611


Anyway. After the "clvmd -S" clvm will not be started, but I start it manually with "/etc/init.d/clvmd start".
Now I have to mark the volume as exclusive again, but after that the lvm systems seems to work fine forever... I can create and delete snapshots without problems, without hanging the lvm.

It seems to me that the "clvmd -S" command does something that the system needs and the normal "stop/start" is not executing.