All good points from the OP.
One thing I'd add is be reasonable about the compensation you request. Admittedly that goes hand-in-hand with a) avoiding hyperbole and b) being specific about what real inconvenience you suffered, but I call it out separately because I see people so often demanding extreme compensation for relatively minor problems.
For example, suppose you check in to a hotel a find your room isn't clean. You report the problem to the front desk, which promptly takes corrective action-- often by assigning you to a different room of equal or better type, or if they're full having your room serviced while you wait 20 minutes. Your stay is not "ruined". Demanding a free night or more is absurd. It's completely out of proportion to the severity and impact of the problem. More reasonable would be to request a few thousand points (whatever is a small fraction of the nightly cost, even when you're not paying with points) or a comp of a meal in the restaurant, one day's parking charge, etc.