Intriguing puzzle, Pat.
Can you see any paw prints around the edge of the pond?
As the pigeon was headless, I think it likely a fox got to it first & possibly took it after as well. Foxes can swim.
I don't think a Sparrowhawk could carry a pigeon.
Another thought, a bigger bird killed & partly ate it, but got disturbed, carried it off from where it was killed, but for some reason dropped it over your garden & into the pond. Sparrowhawk saw it & swooped, Rooks saw Sparrowhawk & mobbed it. Then later a fox took it.