Bless you, and him. You are both in stressful life situations. I think if there's any way you could look at this between you, then maybe you could have a pact to support each other whatever.
What do you think he'd say or feel if he read this thread?
I think he feels trapped, and he has all those terrible strong hormones hitting him like a wave, as well. Age 10.5 to 12.5/13 is in my experience the total worst time with boys. My son and my brother both became almost entirely uncommunicative in this time, apart from mostly being cross, and occasionally looking out of their changing faces with the rather scared eyes of a child still.
Your son is going through a massive, cataclysmic change in himself. And now suddenly his public appearance, his status with his friends, is painfully important. It's the most important thing in his life. And not being embarrassed is his way most important priority.
Being late to school is awful, unthinkable, for him (and he glad he feels like this!). Say sorry to him about ever being late. Make it your number one job in the morning. Start planning to get there early. Take this pressure off him. It's hopefully quite an easy/small thing for you, but it doesn't cost anything and for him it will be a big way to show you're listening to him and respecting what he says. Tell him you're going to take the stress out and would it be good if he's there 10 mins early every day? Then do it.
You can't change where you live, or magic up more money. I'm so sorry as financial strain is the most awful, degrading, debilitating thing. You could put this before him. Is there any way he, or the two of you, can think of making a bit of extra money, so he can do more with his friends? Has he got any ideas for buying/selling online, etc? Often kids have some great ideas, and there are platforms out there set up for this, like Depop and others. Or he could buy some discount items and resell at a small mark up, etc. Or he could game for money (I think that is a thing). Do a you tube channel. Etc. Ask him. He may have ideas.
Joining something cheap like cadets could also be talked about.
You guys need to work together. You need to tell him you know what's winding him up. You need to let him go with his mates at lunch. You need to tell him you're sorry you haven't kept up with him. Get a location app and agree he can go so long as you're able to see where he is for safety.
Talk to him differently. Accept he's turning into a young adult sooner or later. 12-14 is a very rocky time.
Promise him you and him are a team, not you and Dad. (Dad, by the way, is abusive to you both - forget him completely as any kind of support - cut him out of the loop and tell your son you're changing your attitude).
From what you say, your son does see you as the decent kind person who he can rely on. But his taking his frustration out on you. You need to be more competent and understanding of his real challenges, in my mind. Forget punishment as a control method - it often makes things way worse. You need to work on co-operation.
I think your best bet is asking him for help. Ask him to step up. Do that yourself as well.
I'm so sorry, though, as I know it's a hard slog. I'd be respectful of anything he tells you very clearly, and don't make peer pressure worse. Give him his freedom as much as you can, while still monitoring.
You two need a joint plan.