My DD taught me some valuable lessons. I wanted so much for her, i wanted the whole university thing (she is certainly bright enough, good job, status. But actually, i wanted it for me - i made us both unhappy by pushing her too hard. Im not saying this is the case with you at all. What i am trying to say is, don't be too hard on yourself.
Your son is a teenager, he is going through some horrible hormonal changes, he has pressure from school etc, just like the rest of them - it is part of his development that he will be sullen and miserable and generally a pain in the arse. I was just the same, i was awful. My DD was awful. My friends DCs were awful. I bet your son is not miserable with other people, i bet your friends think hes great - thats normal too. He is testing his emotions on the people it is safe to test them on. If he tries some of the bullshit he puts on you with other people, he'll get a smack in the mouth - but its a learning curve for him, your his mum, no matter what he does, you love him - he knows that, so thats free rein. If he wasn't sullen and horrible, THAT would be the time to worry!
You screaming at him to get his arse in gear etc is his safety blanket - you don't do it for a while, that'l confuse the bugger!
Teenage years are pants - you have to muddle through best you can.
I was a working mum with DD1 and i went to uni too - i always felt guilt about it, but i know that my DD was very proud of me actually. Your son is proud of you too (but heaven forbid he actually tell you that!).
Be kind to yourself, if this becomes such an issue that you are battling to function - then its a trip to the doctors for you, seriously, there is no shame in asking for some help and it might just help to get some face to face counselling just to put things in perspective, i speak from experience.
Keep your head up, you sound like your doing fine