WM_LBUTTONDOWN, то в этот момент GetSelectedIndex возвращает еще старый индекс.
G>3. NM_KILLFOCUS тоже не подходит, т.к. если кликнуть в не активную область CListViewCtrl, фокус в контроле остается, NM_KILLFOCUS не приходит, выделение item'a цветом тоже отсутствует.
G>4. При стиле LVS_SHOWSELALWAYS ведет себя похоже на п.3.
Думаю вам нужно использовать стиль LVS_SHOWSELALWAYS и отлавливать ситуацию когда теряется селекция. Например определять с помощью LVM_HITTEST попал ли юзер в айтем когда кликнул на листе или нет.