Eu tenho escrito um script que verifica todos os logs relevantes diariamente, faz uma lista de pessoas que tiveram alguma atividade naquele dia e mantém banco de dados (apenas um arquivo de texto) de usuários e o último tempo eles logado.
Depois, tenho um segundo script que examina o banco de dados em busca de datas há mais de x dias, notificando o usuário e o administrador duas semanas antes de bloquear a conta. E se houver datas mais de x + y dias atrás, exclua a conta completamente.
Isso parece estar funcionando para mim - mas gostaria de usar uma solução não proprietária se houver uma disponível.