Parece que há um problema com a cooperação entre o lvm e o udev.
Em um lvremove , há udev eventos de alteração para cada dispositivo de bloco disponível. Seu processamento parece perturbar o processo de remoção e a remoção falha.
A solução é desativar o (s) LV (s) a ser removido com lvchange -an <given LV> . Nesse caso, apenas alguns eventos "remover" são criados, o que resulta da remoção do dispositivo dm associado.
Se eu lvremove o agora desativado LV, ainda há muitos eventos de mudança do udev, mas eles não afetam o LV a ser removido (porque ele não existe mais no dm), então funciona sem problemas.