Obviously, you decided to accept the higher offer, which is par for the course - up until the point of exchange, nobody is safe, the buyer takes all the risk of spending money on solicitor, surveys, etc. while the seller can still change his mind.
But, leaving aside the moral aspect of going back on a "gentleman's agreement" (which one simply doesn't do), you also have to think of the transactional risk, you just put yourself at risk from the moment you accepted the higher offer.
Obviously, it depends on your circumstances, and whether you're inclined to take risks or not. But if it was me, I would have simply chosen the "safer" money (exchange due over the next days, buyers already committed, very low risk of them pulling out). The new buyers may prove risky, couldn't deliver on the funding side, may even try to drop the price one day before exchange, who knows? As long as you're prepared to accept the risk and spend again time to bring the new buyers up to speed, the fact still remains that you are again "under offer", i.e. have not yet sold. With the other buyers, you would have been very close to exchange, i.e. you have "almost sold".
Hopefully, your risk pays off and your new buyers do indeed deliver and you're better off £20k. Then, you'll forget all about moral-not moral and laugh all the way to the bank