Just read your SWH.
No need for you to feel guilty and fall into his guilt trap. He's 23 it's his life and it is time for him to sink or swim on his own dime.
It is time for you to issue him some serious altimatums. He either must pay you market value rent by Novemeber 1, 2012 or get out. What you do with the rent money is your business. You can either save it to give back to him as a gift when he moves out or spend it on nice things for yourself. Doesn't matter it is your money. There is no need for you to feel guilty. You have done your work and now it is his turn. He is 23. TIME TO CUT THE CORD and get him to fly.
If you die today, how will he be prepared to handle life. How will he afford roof over his head, clothes on his back, or food in his stomach?
If he can't figure out what to do, you can definitely assist him in figuring it out outside of your home. He is 23 and the military has plenty of openings where they will cloth, shelter and feed you for service to your country and provide you with college money. His problem with college money could be solved in as little as 2-4 years of military service and he would be out of your house.
The beautiful thing for me about him being 23 is that if you need to call in the authorities to get him out of YOUR house he will have to comply and leave.
Sounds like he needs some tough love. It's time for him to man up for the sake of your sanity, his future and his future children's future. Some day he may have kids and a wife, he needs to be equipped to handle that and not be a burden to his wife like he has become to you.
To sum it up, either he pays you rent or he gets out. No guilt required. He is 23 not 3. Time to grow up. Isn't what you raised him to do? It simply becomes I love you and you have to go if you are unwilling to pay rent. He is able he can work. He may need to work more but he needs to want more for himself. Don't you think so?