I think this link roughly explains the basic idea of my earlier response to this thread:
http://stackoverflow.com/questions/1...ment-in-jquery
That solution won't fit your exact needs without some adjustment. It is written for jquery (which I assume is OK for you if you're using the script from javascriptkit that you linked to) but the principles are the same even for javascript not based on a framework.
You just use a named setTimeout (in other words, you assign it as a variable rather than simply starting the setTimeout - see below this post for a clarification) and a mouseover event on the tooltip to destroy that setTimeout if we ever get our mouse over the tooltip before the setTimeout actually fires (which we would not have done in the quick-pass situations you are seeing a problem with). You just need to make sure your setTimeout variable has global scope (in other words, declare it - even without any value - outside of any functions so that it is accessible to all other page functions).
Does that make sense?
Code:
//Simply calling a setTimeout:
setTimeout('do_something',50);
//Setting a setTimeout call as a variable so we can access it later in order to cancel it:
var my_timeout = setTimeout('do_something',50);
//And then to actually cancel the named timeout you can do something like this:
clearTimeout(my_timeout);
You can brush up on setTimeout and clearTimeout use here, if it helps:
http://www.w3schools.com/jsref/met_win_cleartimeout.asp