Here's my take on the bug:
The Canvas Distance script executes this line of code `canvas.planeDistance = cam.farClipPlane;`.
In this case, I find it pretty unsurprising that the canvas flickers. It looks to me like a simple case of floating point equalities. Why not have something like `canvas.planeDistance = cam.farClipPlane - EPSILON;`, where the epsilon value is large enough avoid issues?
TLDR: I think the canvas is being frustum-culled because it is positioned right at the far plane. If you bring it a tiny bit closer, it won't flicker.