Firstly, may I say a big THANK YOU, OP, because I am in a similar situation to you and I feel so grateful to you for sharing your story. My adult stepson lives with us and causes us endless worry. Like you, we are concerned that if we just say, "You're an adult, not our problem," and boot him out, that he won't be OK and may be suicidal. I have recently come to terms with this and perhaps my thoughts will be useful:
Your son is an adult, and it is his decision whether he works or signs on, what work he does and for whom. He has found a way to get an income - by signing on. You may feel this is a waste of his time and talents, but it is his choice, so once you have expressed your opinion you must leave that decision to him. Obviously, if he asks your help or advice to get work, you'll give it, otherwise, just let it go. What you mustn't do is to make it easy for him to cope financially by paying car expenses or giving him money. If he can't afford to fix his car - not your problem, you can't afford to help him. As for the suggestion that you or your DH should work in order to fund his lifestyle - laugh and tell him if you did earn money, you wouldn't be giving it to him anyway.
Him looking scruffy is not your problem either. He probably can't afford new clothes (or chooses to spend his money on other things). His decision. Give him nice t-shirts, jacket or trainers for Christmas and birthday but don't give him any money for clothes.
Smoking weed in your house - my DH and I feel very strongly about drugs, so my stepson would be kicked out instantly if he did this, but as you haven't done so already, I guess you'll have to continue to look the other way, unless you feel confident enough to demand he only smokes in the garden.
Vegan diet/poor eating - if you can afford to, buy vegan foods he's likely to eat, but don't worry yourself about it, cook special meals to tempt his appetite or try to persuade him to eat better. Casual attitude is good. Again, he must make his own choices.
Staying long-term - you may not want him staying, but do you feel a sense of relief that at least he is safe living with you? If not, try inviting other people to stay so 'his room' is not available, and do some decorating so it no longer looks like his. Take ages over it so the room isn't free to be used!
Rudeness - he may be obnoxious, but you don't have to listen to his 'strong opinions' if he's not prepared to listen to yours. Argue back and defend yourself, or say calmly 'I don't agree with you.'
Most importantly, you and your DH should read books on assertiveness, and do an assertiveness course as soon as possible.
Good luck x