I have a solution for you to fix this backlash for Diablo Immortal.
Run it like Hearthstone. Port it to PC and have all your unlocks carried over to the mobile. That would give your core fans something to play until Diablo 4.
If you run the game as a service don’t give us loot boxes. I buy your items when I can see what I am buying. Show me the skin and I will buy it.
For the other players (your original target audience) if they only play on mobile then micro transaction them as much as you want. Namely the Chinese and younger players only playing on mobile.
This would fix the issue you are facing now. You did it with hearthstone why not Diablo Immortal? Give your core fans the ones who helped you reach the financial level you are now a bone to chew until Diablo 4.