So he goes to work drugged up, acts out and then gets fired. You are still saying drug abuse is not a problem on the job. It’s old wife’s take that pot only mellows people down. It causes psychosis. If someone says they went to work drunk and caused problems and got fired, would you still argue that alcohol isn’t a problem and that’s not why they misbehave on the job and then get fired?.
I understand you don’t want to leave and I get it you want to understand why he does this or that and often times it’s important to know all this. But no amount of rationalizing and finding excuses for him will change the reality of what’s happening
Separating finances is not hard. Just create a bank account deposit work pay check there and only cover urgent bills like buying food and paying things for the house. If he doesn’t work, isn’t stay at home parent and is not on disability if he chooses to act out at work, he shouldn’t have to be able to buy drugs.