Eu bolei uma solução aqui que faz com que a tela role para a posição que estava quando foi clicada, substituindo o:
btn.href= 'javascript:void(0)';
por:
var posY = window.pageYOffset;
window.setTimeout(function(){ window.scrollTo(0, posY) }, 0);
O problema é que a rolagem sobe e depois desce rapidamente, criando um efeito de "piscagem" bem ruim.
Enfim, estou compartilhando aqui até onde cheguei, mas gostaria de saber se tem uma solução mais adequada.
Abraço.