I don’t see any “free” GPIOs at GL-B1300 (Convexa-B) - GL.iNet Docs (to control a relay for the USB power) or an indication of GPIO-controlled USB power. The DTS does not suggest that there’s a GPIO hog or fixed-voltage regulator in place.

GL-S1300 (Convexa-S) - GL.iNet Docs shows a couple GPIO lines available. Based on that I’d go with a relay spliced into a USB cable. I’ve never torn apart a USB-C cable, but if it’s “just power” then a “normal” cable would work as well.

As a different option:

Perhaps something like a TP-Link HS105 being controlled by the pyHS100 (Python) library? (Keep them off the Internet, as they are overly chatty with their cloud server, even if you’ve “disabled” it.)