I try to cancel online within abt 20 hours and it wouldn't let me do it. The website said to call BA.
So I did and they waived the phone cancellation fee and w/i approx 30 mins both the Avios miles and the 2 for 1 voucher were back in my account.
The technology is working on this on BA.com.