Падает производительность приложения?
Я вроде бы нашёл в чем причина. 
Во-первых, методом тыка было определено, что если закомментировать строку 97:

drawBoard();

То никаких тормозов в Opera не наблюдается.

Во-вторых, если в глобальную переменную gridOn записать false, то тормоза тоже исчезают.

Ну и в-третьих, оказалось, что достаточно добавить после 127-ой строки

gDrawingContext.beginPath();

И тормоза исчезают в Opera навсегда.

Мне кажется, что если не вызывать beginPath, то Opera запоминает все созданные с помощью lineTo линии при каждом вызове drawBoard. И когда вызывается stroke() то рисуется сетка от всех предыдущих кадров вместе взятых. Эту гипотезу нужно ещё проверить. Но судя то тому, что вызов beginPath исправляет проблему производительности, Я думаю, дело именно в этом.
Никаких задержек не увидел. Вы профайлер пробовали запускать?