Я думаю, что математика - это единственный способ определить, «зависает» ли мышь, но если вы подпишетесь на события hover и exit, то в большинстве случаев вы сможете обрабатывать все, что вам нужно.
private void label1_MouseHover(object sender, EventArgs e)
{
//make changes for hovering
}
private void label1_MouseLeave(object sender, EventArgs e)
{
//undo changes
}