I believe I have found the definitive answer for this, after much googling around.
I have a 5.1 Plus (TA-1108) and tried the ADB disabling of evenwell apps and others but it still would stop services after restarts. I eventually found a post on the "Don't kill my phone" Github which alluded to the hidden setting of the "Duraspeed" task killer that is bundled.
The dontkillmyphone website says you can ADB in and change this hidden setting to 0, but this doesn't persist after a restart. The value will still be a 0, but it seems this task killer only reads the value after it detects a change in the value (bizarre, I know). So to disable this Duraspeed thing, you need to change the hidden setting value from something else to a 0 on each boot.
Luckliy, this is very easily done by Tasker/Macrodroid/etc. Use this post:
but the short of it is to enable WRITE_SECURE_SETTINGS to tasker (by running this:
adb shell pm grant net.dinglisch.android.taskerm android.permission.WRITE_SECURE_SETTINGS
for tasker, google for your app of choice)
and then set a task that runs on boot to change a "Custom Setting", Global type, setting name setting.duraspeed.enabled to a value (doesn't matter, I use 2) and then immediately after change the same setting to 0.
I have this set up on my phone and my wifes phone and ever since they have been perfect with background services (my Garmin watch, lastpass, etc) as well as any email/notification apps.