olá amigo. agora que percebi que tentaste adaptar minha sugestão no post anterior. kibon. Como disse, fi-lo online e sem me ater muito a detalhes. A qualquer momento debruço + sobre ele e quiçá daremos uma evoluída. Mas um detalhe que não percebi no seu fonte: não vi menção ao setup da interrupção do timer dentro do main(). Preferencialmente, averigue isso antes de prosseguir e se desejares, publique o resultado.
quanto ao debounce: um capacitor xute 100nF em paralelo com botão pode ajudar e usando entrada schimtt trigger pode resolver.
abç