I think it's just propaganda in order to get votes from conservative homosexuals! Cameron could have made the apologies years ago!
I don't think it's even that cynical, it's more of a generational thing. Discriminating on grounds of sexuality is largely viewed as something weird and anachronistic in Britons of Cameron's generation and younger, even among conservatives.