Bem, @ whiskers75 resposta pareceu funcionar no começo, mas agora eu testemunhei o comportamento novamente e o ppp ainda não estava instalado - deve ter sido a reinicialização que fez o truque antes.
Eu usei netstat -tulpn
para verificar quais processos estavam ouvindo quais portas, e acontece que o nmap estava dando informações enganosas - não era ppp, mas sim ruby. Um processo de ruby falso foi deixado por uma instância de trilhos mortos e ainda estava ouvindo a porta 3000.
killall ruby
fez o truque, a porta foi liberada e eu pude reiniciar meu servidor rails.