Sorry, cross-post. I wasn't ignoring your latest posts, I've only just seen them.
OK, I hear what you're saying about his business being perhaps a bit dodgy, and about your fears of him turning into 'the man in his underpants'. I understand that concern. Incidentally, your son might too, if you put it to him...
At the heart of your problem is this: you are confronted head on by the reality of life with strong-minded teenager: you simply cannot make him do what you want. It is infuriating - and speaking personally I also found it deeply upsetting that my son didn't seem to want anything I valued or offered - but it's still true.
I now think of it as a sort of 'accident of timing', which I then mis-handled. A lot of my son's early 'difficult' behaviour would not have caused me problems or upset if he'd been 18 or 19 rather than 14 or 15, and especially if I hadn't had to try to make him go to school. But he was, and I did, and we entered into about 3 nightmare years during which I tried to make him do things he didn't want to do, and he fought me, and I sanctioned him, and he got furiously angry, and more and more disengaged, and our relationship was nearly broken.
I can see your son is similarly 'out of step'. I wonder how much of his behaviour you'd still be trying to stop if he were 18 or 19? If the answer is 'not much', then my hindsight says drop those fights, and concentrate your efforts on the stuff you'd worry about whatever his age...
I know some people will say that is "letting him win", but you however infuriating that is, you can't win this one. And you're using up energy you could spend on positive aspects of your relationship.
And GCSEs, honestly, he can get whenever he needs. It's hard for those of us who have aspirations for our kids to let these go... But there are many different routes to success. :)
I also know that my son stopped being an arse as soon as I stopped fighting him. And now he's applying for university, back following almost exactly the path I imagined for him before all the trouble started...
:)