Yes. Stop including food in sleeper prices. Wanting a bed and wanting a full plated meal 3x/day are two different questions. To me, the worst thing about the contemporary dining options is that they took a whole car that used to serve decent meals to anyone on the train and turned it over to sleeper passengers to eat less-decent meals in.
I've said before: let people order their food beforehand for a slight discount, no matter what kind of ticket they have.
Surely a little thought and experimentation can get a variety of decent food, both hot and cold, and none of it nasty. They are trying already; as a lot of people here seem to agree, the issue is not whether there's a chef on board cooking from scratch, but whether the food is any good and whether there's a comfortable place to eat it.
Run diners, diners-lite, cafes, automats, or whatever is the most economical/attractive/effective (may need to choose among these) way of serving food. Have contractors hang food on mail cranes after passengers order it by phone app, if that works.
Any option is going to cost more than similar food at a stationary restaurant that doesn't need roller bearings, inspections, latches to secure equipment, etc., and which doesn't carry its workers away from home or outrun its sources of supply. I don't think it's reasonable to expect people to work the LD cafe hours for the same lousy pay as low-end restaurant wait-staff do on "land," and I personally don't want to have Amtrak join the restaurant industry in turning decent jobs into lousy ones; nevertheless, MAYBE in the context of a real rethinking of food service (as opposed to little tweaks here and there), Amtrak and the unions could come to a new arrangement that would make sense. Some kind of change in the craft boundaries might even make the car and cafe attendants' jobs easier and/or more interesting/varied, especially if new POS tech made sales and inventory easier to do.