Android process management sucks. It's almost as if they don't want you to exec a native binary sanely (hint - they don't.) This made it impossible to clean up a Kismet server process if a new apk was deployed, or the thread crashed, or whatever.
Ended up porting Kismet to run as a NDK shared library by adding a small wrapper that turns a jstring into an argc/argv pair and wraps main(), then runs the whole show in a java thread as a JNI call.
Tossed together a ridiculously basic Kismet client in java to get a display back on the main window; previously it scraped stdout from a kismet_server binary running via Runtime.exec. All the client does right now is turn off *TIME and turn on *STATUS
Everything but the UI runs in a service which stays running in the background. Because currently kismet runs in a sharedlib with effectively no mods (added an ifdef to not build tuntap), it isn't killable as a thread. A future mod would be to add a jni call that clobbers globalreg->fatal-condition to cause a kismet shutdown.
Right now Kismet throws some spurious errors because it isn't configured to have any writeable directories to store tags, etc. I don't care right now.
Thanks to Laen and Dorkbot, got some USB power injector boards being made as well:
Super simple board to pull 5v from a battery pack, and prevent VCC from the phone from being connected to the radio.