3) Давно - это всегда о прошлом ("он давно выбрал"). Долго - это может быть о прошлом ("он долго выбирал"), настоящем ("он долго выбирает") или будущем ("он будет долго выбирать").
I don't think that this is the best explanation: "Он давно изучает русский язык". Это настоящее время