I think we're downplaying Anupindi's problem here--its not a little thing to be sitting in human waste for a 9 hour flight. How can BA not be responsible? If a guest/client came to your home/office, and sat in a urine drenched seat, I think you would all be a little ashamed, and would do everything possible to apologize.
While a future upgrade may or may not be in order, a few thousand EC miles coupled with a discount voucher is the very least BA should do.