Semplicemente hai dichiarato due volte la variabile ctx che, essendo nello stesso contesto (globale), prende l'ultimo valore assegnatogli, il quale fa riferimento al secondo canvas:
codice:
var ctx=c1.getContext("2d");

[...]

var ctx=c2.getContext("2d");
Forse sarebbe il caso di usare due variabili differenti.