It sounds like there are two separate bugs then:
1) lvm waits for udev, which waits for lvm -> circular dependency deadlock
2) watershed eats the DM_COOKIE causing the semaphore to not be released
It sounds like there are two separate bugs then:
1) lvm waits for udev, which waits for lvm -> circular dependency deadlock
2) watershed eats the DM_COOKIE causing the semaphore to not be released