Você precisa executar suas regras na ordem inversa. O Iptables é sensível à ordem em que os comandos foram executados. Se uma regra corresponde, ela não verifica mais regras, apenas obedece a essa regra. Se você definir a queda primeiro, a regra de aceitação nunca será testada. Ao definir a aceitação específica com o IP de origem, a configuração da política mais geral a ser descartada afetará o comportamento esperado.
iptables -A INPUT -s x.x.x.x -p ICMP --icmp-type 8 -j ACCEPT
iptables -A INPUT -p ICMP --icmp-type 8 -j DROP
Quanto ao problema do jeito que você parece estar tendo, tem certeza de que inseriu um endereço IP válido? Talvez você possa prefixar esse comando com strace iptables …
para ver o que ele está fazendo enquanto parece travar.