To address the first concern and third concern we can use OpenGL's stencil buffer to control which portions of the frame buffer are written to at any given time.
We will first draw the shadow projection plane polygon(s) with the stencil buffer recording which pixels are drawn.
Next we'll configure the stencil buffer to only allow new drawing where drawing has already occurred and erase the corresponding portion of the stencil buffer so no further writes are allowed to those locations and then draw the shadow.
Finally, we'll turn off the stencil buffer and draw the object.