Hi OP, it sounds really tough.
I have a 3yr 6m old and thankfully we've never had much of a problem with his behaviour bar the usual throwing things in anger, hitting out at us when he doesn't get his way etc but thankfully it's rare.
The way I deal with him when he throws something he gets told, "No, you know you don't throw things in the house." If he then throws it again he gets a warning that it will be taken off him if he throws it again, and then if he does throw it again I remove it. I tend to put it somewhere still in his sight but out of reach and he's told that if he behaves he can have it back later and I usually return it to him after 1-2 hours.
My friend used to have awful problems with her 3 year old boy's behaviour, he really was awful and she'd be in tears all the time and she used to throw his toys away all the time as a punishment but he started to find it funny and would actually start walking up to her with his toys, tell her to put them in the bin and then just start laughing.
My DS also has a naughty step which is what I use if he either hits out or kicks out at me or DH. When I put him on the step I tell him he's to stay there until he's ready to apologise and when he does say sorry (usually after a few minutes) I ask him what he's sorry for and he will say "For hitting daddy" or whatever he did.
I have never resorted to throwing away toys but my DH did on one occasion (which I felt uncomfortable about) and that's when he was repeatedly kicking out at my DH even whilst he was sitting on his naughty step. He was being really defiant and shouty and my DH said that every time DS kicked him (this is whilst on the step) then one of his toy cars was going in the bin. DS continued to scream and kick out at him so DH carried out the consequence and after about 4 of his little toy cars going in the bin DS did stop kicking but he was distraught when he realised DH did actually throw his toys away. I found it all a bit upsetting and me and DH did speak about it afterwards and said really he should have left DS on the naughty step instead of sitting there and talking to him which just fired up the situation and. As badly as I think DH handled the situation DS has never misbehaved on his step again.
Sometimes getting DS to do as he's told can be challenging so I use the technique of counting slowly to 5 with him knowing he has to do what has been asked by the time I hit 5 and he's always done it by the time I hit 3 or 4.
In general DH is more stricter than I am and I think dishes out the counting and naughty step consequences too quickly in situations that I perhaps wouldn't but ironically DS is much more well behaved for me. I think because DH can dish out consequences quite willy nilly DS just does as he pleases whilst with DH because he's frequently hearing the threats whereas because DS knows I'm more patient and talk to him about his behaviours before rushing straight in with discipline he's much calmer and settled in my presence.
I also find distraction is a very good technique to break up a situation that I think has the potential to escalate to a drop in his behaviour and I find play-doh and painting are the two activities that really settle him because he really engages in it and focuses on it and it's something fun we can do together. I find if I simply try and get him to play with another toy it isn't really that effective at changing his mindset whereas a fun activity together completely changes his mood. Plus, because getting the play-doh or paint out isn't an everyday occurrence (because it's a hassle and messy) he gets excited when we do it. I don't look at it as rewarding bad behaviour (I know you mentioned that in terms of taking your DS to Soft play if he's being difficult) because I don't think 3 year old have the emotional intelligence to make that kind of connection between two separate activities. I don't believe that my son thinks to himself "If I play up it means my mom will get the paints out so what naughty things can I do....."
Have you tried Reward Charts for any specific aspects of his behaviour? We have used one to address DS's Sleep problems since he was about 3 years and 2 months and it worked amazingly!! It's an interactive way of rewarding good behaviour and as has been said numerous times on this thread, praising them for good behaviour is much more effective than punishing them for bad behaviour.
Finally, there is help out there through your Health Visiting Team if you ask for it in terms of focused home visits to support behaviour problems and put plans in place or the availability of parenting courses. Apologies if you have already contacted them but if not I strongly suggest it.
You really do have my sympathies OP because it sounds draining. You aren't a shit parent at all, all we ever do is the best we can and it sounds to me like you're just exhausted by it all.
What stance does his dad have on all this? Are your parenting techniques consistent?