Only download file if the image completely covers the footprint?

I can’t help with the Scihub query.
For the graticule overlay I can say it is not easy to do.
I’ve explained the how to use the layers for Java some time ago:

You can try to bring this to Python but this will not be an easy task I think.
The class you would need to create the Layer is called org.esa.snap.core.layer.GraticuleLayer