Cancel AsyncTask
You have a 'one line command' that performs a very long operation, there's not much you can do.
The best workaround would be to use your own cancelFlag boolean. You can then test this cancelFlag in your postExecute to decide what to do with the result.
To stop a background service call this method
mContext.stopService(new Intent(mContext, MyBackgroundService.class))
To stop the app you can use the finishAffinity method, which seems to be pretty close to closing all related activities by its name and javadoc description:
this.finishAffinity();
Finish this activity as well as all activities immediately below it in the current task that have the same affinity. This is typically used when an application can be launched on to another task (such as from an ACTION_VIEW of a content type it understands) and the user has used the up navigation to switch out of the current task and in to its own task. In this case, if the user has navigated down into any other activities of the second application, all of those should be removed from the original task as part of the task switch.
Note that this finish does not allow you to deliver results to the previous activity, and an exception will be thrown if you are trying to do so.
If you really want to force stop your app, just like in the application info of the device use this, taken from here:
Process suProcess = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(suProcess.getOutputStream());
os.writeBytes("adb shell" + "\n");
os.flush();
os.writeBytes("am force-stop com.YOUR.PACKAGENAME" + "\n");
os.flush();