It is very important that my service stay running until someone with a password stops the service from my UI screen. My app runs great but it is designed to be turned on/off
There isn't a way to prevent this directly, without a rooted device. The SDK helpfully prevents these kinds of issues.
You can do the "truly evil" trick and have two services in two application. Each service monitors the other, and restarts it if it stops. This is kludgy, but in most cases even the fastest fingered kid couldn't kill both applications.