А у меня и переполнение вылезало минут через пяток с вашим кодом

Есть предложение сначало глушить реакцию на мышь, может и так даже
Код:
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
Handled := (msg.wParam = vk_lButton) or
(msg.wParam = vk_rButton) or
(msg.wParam = vk_mButton);
end;
а затем в низкоуровневой LowLevelMouseProc (она продолжает работать и при блокировке) ловить и обрабатывать нажатия самостоятельно, но это правда ещё тот гимор