1. das wird normalerweise ganz tief versteckt im Kernel gemacht. OTG geht so: Kurzschluß am ID pin erkennen (das macht Hardware und löst einen Interrupt aus), Wandler von Akkuspannung im Gerät auf 5V einschalten und warten dass sich das angeschlossene Gerät per USB-Protokoll meldet (dann wird ausgehandelt wie schnell es ist, welchen Strom es haben will und was für ein Gerät es ist). Das alles bekommt man in Android selbst auf der Kommandozeile (adb) nicht mit. Nur das Ergebnis dass z.B. ein USB-Speicherstick erkannt wurde. Falls Du extrem viel Glück hast, gibt es bei Deinem Kernel im /sys eine Möglichkeit das gezielt zu schalten.
2. Bits auf USB-Bus schreiben geht auch nur wenn Du einen Kerneltreiber für den USB-Controller auf Deinem speziellen Prozessor hast. Dann gibts entweder einen Test-Mode wo man gezielt Spannungen auf D+ oder D- schalten kann (0, floating, 3,3V). Oder man kann den USB-Port auf UART schalten (falls das eingebaut ist). Aber alles das geht nicht auf Android-Ebene sondern Du mußt ein Cyanogenmod installieren und den Kernel hacken.
3. Es gibt Bluetooth-Module z.B. mit RS232-Interface für ca. 10€ (schaue mal auf Aliexpress). Das ist nicht sooo viel mehr als ein USB-Stecker + Kabel kostet und Du kannst über stty den RTS "fernsteuern". Und das Risiko das Handy zu beschädigen ist kleiner. Du mußt im Schaltplan nämlich S mit GND vom USB (also dem Gerät) verbinden - sonst ist die Gate-Source-Spannung undefiniert.
Zum MOSFET: am Gate zieht der gar keinen Strom, das reicht eine Steuerspannung (Gate-Source-Spannungsdifferenz). Das ist ja der Witz an FETs gegenüber bipolaren Transistoren.
Also in Summe scheint mir für den Anwendungsfall ein Microcontroller-Modul mit eingebautem Bluetooth besser geeignet zu sein. Da kannst Du dann auch Sicherheitsmechanismen einbauen.