Consegui descobrir uma solução alternativa, embora imagine que exista uma solução melhor por aí. Eu olhei para o que estava acontecendo quando minha tampa foi fechada e aberta em /etc/acpi/lid.sh
e descobri que o xscreensaver estava sendo chamado automaticamente. Não tenho certeza se diferentes laptops têm configurações diferentes e outras coisas - eu realmente não sei muito sobre essas coisas.
De qualquer forma, tentei simplesmente obedecer ao seu arquivo de configuração e não bloquear, mas não consegui descobrir, então acabei simplesmente excluindo as linhas que envolviam o xscreensaver. Agora tudo funciona muito bem: sem travamento, e se a tampa estiver fechada, a quantidade de tempo que você definiu para iniciar o xscreensaver começará normalmente (e não travará).
Eu ainda não sei por que o xscreensaver está configurado para ser chamado automaticamente quando a tampa é fechada ou porque ignora suas configurações e bloqueia quando a tampa é aberta. Eu também não entendo porque com o meu laptop mais antigo isso só acontece esporadicamente (às vezes ele bloqueia todas as vezes, às vezes nem um pouco), apesar de ter o mesmo arquivo lid.sh.
Também devo observar que estou usando o Ubuntu 12.04 com o Unity, embora não ache que isso faça alguma diferença.