It looks like the browsers are drawing some of the tick marks from the origin (top-left) to the start, drawing the tick, then drawing back to the origin. Werid as all the tick marks are drawn using the same code in a loop…
Open a new path, move to start, draw tick mark to end, close the path, draw it. Not much to go wrong there that I can see?
ctx.beginPath();
ctx.moveTo(OUTER_POINT, 0);
ctx.lineTo(MINOR_INNER_POINT, 0);
ctx.closePath();
ctx.stroke();
A link to the page would help