No necesitas una aplicación para que la app se inicie automáticamente al iniciarse, basta con que crees un BroadcastReceiver para el mensaje BOOT_COMPLETED y que ese BroadcastReceiver inicie la app. Que será lo que hará la aplicación LaunchAfterBoot supongo.
En cuanto a lo segundo, aquí explican como hacerlo:
http://stackoverflow.com/questions/1...-up-supression
Aunque lo malo es que tienes que registrar el dispositivo USB a priori, es decir, tiene que ser para un Vendor ID y Product ID concreto. Si tu aplicación es para manejar un dispositivo USB en concreto perfecto, si es para manejar pendrives, lo vas a tener jodido.