В итоге кликаешь не по тому контакту, что собирался изначально. А там могу быть непрочитанные сообщения, которые я сейчас читать не собирался. А флаг непрочитанности уже сборшен! Ну спасибо. Да, флаг можно поставить обратно, но в нём не будет указано, сколько конкретно сообщений не прочитано.
Можно было бы проверять, не приходило ли новых сообщений за 1 секунду до клика. И если приходило, обрабатывать клик по старому состоянию контакт-листа.