Ваше требование (4) сложно удовлетворить, я бы сказал. С введением режима Doze и различных других мер экономии батареи, добавленных в более поздние версии Android, вы не всегда будете иметь полный контроль над ним.
Если вы настроены гибко, ваш лучший выбор:
WorkManager
Это наиболее подходящая конструкция для ваших требований и любых подобных требований. Если вы читаете документацию , в ней говорится, что WorkManager использует другие технологии таким образом, который лучше всего подходит для указания c версий Android.
Он имеет API-интерфейсы, позволяющие вам решать все другие задачи, которые соответствуют вашим требованиям и хорошо справляются с обратной совместимостью.