Op, I can't help but wonder if you are not trying to control him just a bit? I mean I can understand being unhappy with his choices, but his choice of girlfriends is not really effecting you is it? I have been unhappy with a few of my son's choices in the past, so I can certainly relate; but then I have to remind myself that if their choices are not directly effecting me then they are really none of my business.
If this had been his best friend that had called for a ride, would you have been upset? Or is it just your dislike for the girl? I have btdt and know that its hard not to be upset when he does something for someone you don't approve of. I have thought my tongue would bleed many, many times from being bitten!
I would just say to him that you need a limit on how long he will be using you car and how long he will need to stay with you. He should be able to give you some kind of time frame at least the first one. And then during that time, just back up and allow him to make his own choices. That's really all you can do anyway.
This post pretty much sums up my feelings on the issue.
Good luck to you in ironing all of this out. It sounds like you are under a lot of stress and it DOES sound like your son has taken advantage of you for a long while now (I remember a prior thread where you had to be on call to watch his kids in case he had to have you watch them while he went somewhere that wasn't work--hunting r fishing maybe?--and could therefore not watch your other grandchildren; so I think this type of behavior has gone on a long while now), but it ALSO sounds like you are trying to control aspects of his life that are absolutely not your business--I wonder if treating him like a child in those ways (lecturing him about sleep time and who he dates) further encourages the immature and childlike behavior that has resulted in him needing to live with you and owing you a ton of money
I think you DO need to sit down with your son (and your DH) and set up very clear rules and guidelines as to when he will be moving out. It should be explicitly stated that money is to be saved--not spent on going out to dinner or whatever.
Valid rules would be:
1.limits on driving the car. How many miles can he put on it per week (look at mileage to/from work and kids and figure out an average, add a bit more for whatever and then stick to it)? Who pays for gas? Insurance? Deductible on wrecks (I think he should pay that NOW)? Keeping it clean.
2.Time line for when he will be out of your home. Personally I would make him fork over the vast majority of his pay to you to hold until there is enough to buy a car and move out. That way he cannot decide to blow it all on something frivolous. I would also look on craigslist and see what the going rate is for a roomates and tell him when he has a car (and be very clear on how long you are willing to wait for that--he does not need a NICE car) he needs to move into a roomate situation (cheaper and often does not require first and last months rent or as large of deposits) until he can afford to get his own place--you will not be his fallback forever. Set a time he has to move out regardless of whether or not he has enough money to do so.
3.Ways he needs to help around the house.
4.Food and utilities. Who pays what?
5. House rules that would be typical and are acceptable to many adult people. Things you also follow and which directly affect others in the home. Things like no overnight guests (other than his kids), not being loud (quietly going in or out or even cooking should not be a true issue--maybe you need ear plugs and closed doors) during certain hours, no smoking, no drugs, no sex, etc.
Beyond things that directly apply to the other occupants of the house (and to which you are willing to adhere as well) there is NO REASON at all to try to control his life. You need to step back and realize you have no valid say in who he dates, how much sleep he gets (I think you are more obcessed over his sleep than I am over my 13 year old's

).