How about only scrolling when:
ViewportLeft("MouseLayer") < Mouse.X < ViewportRight("MouseLayer")
ViewportTop("MouseLayer") < Mouse.Y < ViewportBottom("MouseLayer")
?
edit: Sorry, I've just re-read the full thread and realised this would probably be subject to the same issues. I don't know what to suggest