I think if you're hosting guests, then you have to host without expecting something in return. Yes, a polite guest will thank you and take you out for a meal in return (which they did!). But you're not owed anything. The bigger issue here is that *you* are putting all of the effort into preparing for their visit. If your husband is expecting you to do this, then you need to have a serious talk with him about that because it is unfair to you. If you are choosing to do it? Well, then that's on you. Perhaps you should sit down together and agree upon what is important in preparation for their visit, and who will do what. And stick to it.
Honestly, I think the timing of the gift is irrelevant. They knew something their son wanted, and gave it to him. I only wish my DH's parents had the money to give him *anything*. But I don't want anything from them, they're his parents. My happiness does not rest upon their approval or their thanks. Yes, you and your DH are a social unit, but that doesn't mean you have to receive joint gifts. The issue here is very much a relationship issue IMHO, and nothing to do with your in-laws at all. The problem is you resent that your DH enjoyed a visit from his parents, AND they're giving him stuff, but meanwhile he's not pulling his weight around the house. Focus on his lack of contribution, but don't make it about his parents - they did not do anything wrong, and even if they did, what do you expect him to do about it, reject the gift?