Вы всегда можете сделать холст в памяти (например, не добавлять его в DOM)
storedCanvas = document.createElement('canvas');
Затем вы можете нарисовать весь холст на этом холсте:
storedCtx.drawImage(firstCanvas, 0, 0);
Тогда вы можете делать все, что захотите, с первым холстом, сохраненный не изменится. Затем, когда вы хотите вспомнить это, вы просто делаете
firstCanvasCtx.drawImage(storedCanvas, 0, 0);