Была когда-то в KAV (в седьмой версии точно, но не знаю, может и сейчас есть) такая особенность, что при выполнении SetThreadContext проактивка молчит всегда, когда под курсором мыши (!) нет окна, принадлежащего тому же процессу, что и поток, контекст которого устанавливается. В результате достаточно было проверить данную ситуацию и на время выполнения SetThreadContext сделать, например, попавшее под курсор окошко невидимым.