I am working on the same issue and decided not to use AlarmManager. Scheduled notifications worked fine in a test environment, but in fact, users received the first few notifications, and then just stopped, as if the alarms had been canceled.
I decided to use a service that runs every 15 minutes and sends out notifications of expired things. Thus, the process, at least, starts again, if something happens to it, when for some reason the alarm is canceled, it is not recreated.
source share