Hi OP, I’ve just read the whole thread and am sitting here really feeling for you.
Alongside spoiling your your son and being lax with junk food etc, does your DH ever discipline your son? For example, if you’re taking his muddy boots off and he’s kicking you, will your DH swoop in and tell him it’s not acceptable for him to kick anyone? When he shouts at you to get off or takes a swipe at you or generally speaks to you rudely, will DH reprimand him and say we do not treat people like that?
Rather than a DS problem, I think this is a big, BIG DH problem. You should be presenting as a team against DS and any shit behaviour should get a reprimand from DH too. The split between you is feeding the problem because kids will find any crack between their parents to divide and conquer.
Surely if DH loves you and can see your hurt, he can start to do this with you? Spend 2 weeks with your DH as the disciplinarian?
From a discipline point of you, time outs like shutting kids in their room is not effective in impacting behaviour. That isn’t a dig, as it’s a long-used tool that many parents go to, but it’s been extensively proven to not make a difference or to exacerbate the behaviour in the long term. ‘Discipline’ it’s traditional sense is problematic because their is no where for the parent to go other than escalation when the initial discipline doesn’t work, so either the child becomes a angrier, desensitised or the punishment becomes way out of kilter with the transgression. When my twins were very little, I read ‘How To Talk So Little Kids Will Listen’ which is a great resource for challenging behaviour.
Things like adapting your behaviour before a tantrum starts, matching behaviour (have a meltdown with them and name their feelings: I hate taking my muddy boots off!!!! It’s so annoying!!! I wish I could stomp my muddy boots everywhere!!! / Argh, I hate putting the ice cream away!! It makes me so angry because I want ice cream for breakfast every day!!). These things can diffuse a situation before it escalates.
All in all though, your DH needs to be on team parent and not team DS.