The way to avoid this situation is to always try to reserve a room in the base sleeper that will always be in the consist (formation) generally this is the lowest numbered car. For example for the Westbound Southwest Chief (train #3) the sleepers would be car numbers 330, 331, 332 (if there are 3 sleepers). If a car was cancelled due to a shortage they would remove in this case 332, then 331. So always try to book in 330 the lowest numbered car. This isn't possible on the web site, you would have to call. It is best to join the Guest Rewards system not only because you get points each time you travel that can be used for discounts or upgrades, but also because they have their own dedicated reservation agents and usually your call gets answered quicker than the main reservation line.
Edit: I should explain the car numbering in case it is not obvious. It is the train number + the car suffix which for sleepers will start at 30 or sometimes 31. Note that the lowest numbered sleeper is next to the diner, the next one next to that car, and so on. Occasionally there will be a trans-dorm generally used by the staff but they will occasionally sell space in it also. I believe these are usually numbered 39.
As for the "smoke breaks" although they can shorten these if the train is late, there are situations where they still have to take some time, for example refueling stops. Or in those rare cases where trains split/join - there are only 3 of these: Albany on the Lake Shore Limited, San Antonio on the Sunset/Eagle, and Spokane on the Empire Builder.