As an empirical question, I think you are likely right that charging off some money owed might buy Heroku disproportionate amounts of goodwill. (I do it all the time.) That is, properly, their call.
As a normative question, though, for-profit businesses do not have a generalized right to make their mistakes into others' obligations.
More broadly, one of my periodic crusades is trying to get HN people to understand that norms in the business world are very unlike the norms of cash-strapped twenty-somethings regarding things like a) the appropriateness of charging money (charge more) b) how much money $1,000 really is (a lot to you, a lot to me, rat spit to businesses with an HR department) and c) expectations for professional behavior (you're doing taxes like a boss, reading contracts like a boss, capacity planning like a boss, paying your invoices like a boss, etc).
Businesses that work on 'metered' entities (phone companies, banks and so on) as a rule have velocity checks in place.
This limits the amount of damage a customer can do to himself and to the company between billing periods.
I think Heroku is the party here that stands to benefit the most from the encounter, and by simply charging the customer they've lost an opportunity for good PR and have made half of HN more wary of dealing with them.
I understand what you're getting at, but just like there is a maturity to being 'in business' there is a maturity in dealing with your customers, and in this case both parties carry part of the blame, so the reasonable thing to do is to find a solution that lies in the middle.
Even the pros mess up occasionally, and in this case it was pretty clear that it was a mistake.
The real lesson here is that Heroku should implement a notification system when a customer has excess unused capacity or a min/max setting for their dynos with automatic increase and decrease depending on the amount of traffic a customer is currently receiving.
As you say, you 'do this all the time', so that means that you know exactly what is in your interest as a business person, and if that means that you occasionally eat a charge that must mean that you know exactly what the value of goodwill is.
Heroku, apparently has not yet learned that lesson, and 'heroku' and 'unexpected large bill due to mistake' are now two concepts that have become strongly linked. It did not need to be that way.
for-profit businesses do not have a generalized right to make their mistakes into others' obligations.
The OP never argued that he has the right to force the cost of his mistake onto Heroku. He's polling a community of business owners to see how they feel it should've been handled.
If I were Heroku management, I would've written the OP something like this:
(Valued Customer)-
I'm so sorry your accident created a nasty end of the month surprise. We understand, but we cannot forgive the whole amount because while they were not servicing requests, we incurred real costs keeping the dynos ready, willing, and able for you.
Since it's your first mistake of this sort, and you've been such a great customer, we're willing to reduce your total amount owed to $x.
We hope this helps,
Heroku
----
so yes, I think it's his own damned fault. But I also think it's a missed opportunity to create a happier customer.
As a normative question, though, for-profit businesses do not have a generalized right to make their mistakes into others' obligations.
More broadly, one of my periodic crusades is trying to get HN people to understand that norms in the business world are very unlike the norms of cash-strapped twenty-somethings regarding things like a) the appropriateness of charging money (charge more) b) how much money $1,000 really is (a lot to you, a lot to me, rat spit to businesses with an HR department) and c) expectations for professional behavior (you're doing taxes like a boss, reading contracts like a boss, capacity planning like a boss, paying your invoices like a boss, etc).