Hi Peter S, I think you are confused how this works.
You see when someone askes for payment using bitcoin, and payment is sent to him , as in a transaction has been created in the mempool and relayed to the receiving party, the only way to "cancel" a payment using bitcoin is if the transaction has too little fees and drop off the mempool, or in the case of a double spend, if the double spent tx is confirmed and mined before the first one, in which case the first one "is cancelled" as the 2nd tx is now the authoritative ones.
When you make a purchase or something using bitcoin and the other party says they have cancelled the payment after you have sent a transaction. It means that they will refund you bitcoins to your address if it somehow gets confirmed in a block.
i think it is high time you update your electrum client, we are now at 2.8.2 with a lot of fixes and improvements
https://electrum.org/#downloadIn the latest version, you should be able to enable Child Pays for Parents transactions in settings (it might be enabled by default), in which case if similar cases happen you can bump up fees with another transaction with higher fees to do what we call paying fees for parent tx also.
You can also enable dynamic fees in which a slider would appear when sending txes, according to how fast you want your tx to confirm. Although I strongly suggest using
https://bitcoinfees.21.co/ to check the cheapest fees at any time to get confirmed quickly.
Personal thoughts, I have been using 320 sats/byte fees for a month or so and they seem to be confirmed within 5 mins to an hour.
Chances are until the segwit with 2MB hard fork is released, the mempool congestion should continue for quite awhile.