Получилось!
Через пару недель вернулся к своему вопросу.
Сделал новый проект с пустой формой. Набросал простейший пример с invalidate -- все заработало.
Вставил туда свои куски кода и случилось чудо

)
В общем у меня где-то грабли были зарыты, но я их так и не нашел...