If your problem is the blurred edges:
The solution is as simple as setting the overlay's texture filter from inherit to be nearest either from the inspector or through code
overlay.texture_filter = CanvasItem.TEXTURE_FILTER_NEAREST
Since your overlay is inside a SubViewport, and the default texture filter of that is Linear by default, and the overlay's texture filter is set to inherit (I will just filter textures as my parent does), it inherits Linear from the OverLayer which inherited it ultimately from SubViewport, if what I said makes any sense.
So you can alternative to the previous solution, in the inspector of the SubViewport under Viewport under Canvas Items set the default texture filter to nearest.
As far as I understand it, Nearest makes it so that a certain pixel does not affect adjacent pixels, so small drawings and pixel art are not blurred or smudged. While Linear makes the image smooth, so lines are not jagged or pixelated on larger scale images, but take that with a grain of salt.
If you problem is the position of the red "dot" taking half the canvas:
I think the SubViewport size is set to (2, 2) or something. Setting it to larger values, while also making sure to set the canvas to the same value will zoom the view out, and make the canvas use all of the viewport, I believe.
I hope this helps