Essa é a maneira correta, não há melhor maneira disponível.
Arquivos criados em seu diretório pessoal, ou outros arquivos criados durante o funcionamento normal do pacote, como arquivos de log, não são removidos, e não há uma maneira fácil de fazê-lo, se o script preremove e postremove não fizer isso . Obviamente, o problema não está na remoção, mas na individuação de tais arquivos.
O fato de o serviço sobre o qual você fala continuar sendo inicializado é estranho, talvez esteja presente em outro pacote? O que dpkg -l | grep nginx
retorna?