My experience - not that I do many cancellations - is that 4 scenarios can apply:
1) Immediate (within a few hours) refund of both cash and Avios.
2) Immediate refund of Avios, cash takes a few days.
3) Cash takes 3 to 5 weeks, Avios one or two weeks.
4) Both refunded 2 or 3 days after the original flight date.
1 and 2 for online cancellations, 3 for complex routings involving non BA flight numbers (though they can also fall into 1 or 2), 4 if cancelling shortly before travel. But it's not very consistent. For some reason, which I can't really articulate, I kind of know which it will be when I do it, but I guess the summary would be more complicated and shorter notice the longer it will take.