Minha solução ficou muito parecida. Também criei uma função para a troca de cor. Só que para a coordenada y só testei se ela era menor que tamanhoQuadrados, já que seu limite superior seria a própria tela (canvas).
Porém, para a parte de impedir que desenhasse na mesma linha da paleta, implementei na própria função habilitaDesenhar uma hipótese para que desenha receba true, impedindo que fosse desenhado para um y < 50. Não pensei em testar o x pois seria para qualquer valor de x dentro da tela (canvas).
function habilitaDesenhar(evento) {
var y = evento.pageY - tela.offsetTop;
if(y > 50) {
desenha = true;
}
}