[Android Apps and Games] DiamondJohn:
A quick random thought, did you checked if its excluded from the Battery Optimizer?

I havent tested it in anger, but in TeMeFI there is also the ability to Whitelist apps from doze (user and system). If it worked as is written on the box, I think it would possibly solve your issue. Find/read the documentation, in case I got something wrong.

If I understand it correctly. the messaging app dev is a 3rd party to the client, and thus the bug / report / support should be directly with this 3rd party developer. If its not working in stock mode (ie Stock doze) then its pretty definitely a bug the developer should and I would expect want to address. It sounds pretty serious for those that dont customise their phones.

The names, description and explanations are available within TeMeFI under Currently Running Doze>Doze Parameter Description This list contains

Code - As defined within the AOSP Source as a defined variable

Parameter - As found in the shell interface, and also transferred in Java into the "Code" value

Name - short human readable name

Default - an example of a possible value. "default" is probably a bad name as it was simply the default in the Android ROM source I was building at the time.

Description - The explanation of what the parameter actually does/affects

I haven't explicitly looked for it, but I would assume that AOSP Android source does not support providing this info directly in Java, so even if you write a Java app, you will need to shell out in your Java app to get and set the value(s). This is the rule for root action user apps anyway. ie you basically shell everything in a Java app, to do root actions. I always hesitate when saying that, but without changing the system explicitly for your app, that's how android works as far as I can see. For example, Viper4 Android only uses root to install its audio driver and modify your system config files. Once thats done, you can remove its root access.

Spoiler content hidden.

It is not the managing, but triggering your scripts that help you attain your goal. The power of Tasker (from my understanding since I have never used it) is in your shell script and the triggering of your scripts based on state and/or intents by Tasker. Your script does the actual heavy lifting.

A few years back I created an app that runs any shell script off the trigger of any publicly available intent. Which for example allows you to run a script on screen off, at timed intervals; a LOT of events/triggers in Android. I pre-defined about 550 intents, but the user could enter any additional one explicitly/manually (some couldbe specific to a user / 3rd party app). When writing it, it seemed like such a brilliant and simple idea (and it was really very limited code, almost all of it was the UI and not the meat). But, after writing and testing it to see how it worked in action, I just did not find a practical purpose on a live system to use it, so I never used it and have not progressed it any further. And hence, I also wont be looking into Tasker.

I was also really chuffed with the app name. Since it ran shell scripts off of intents, I called it "Intentional Shell" ;)

In programming, these differences are extremely important.

EDIT: Another random thought to test. Have you checked (if your phone supports it), how it behaves if you turn AOD on? leaving everything else at stock (ie no custom doze, and no tasker script)