The people that are saying that it's difficult to program that AI are taling pure rubbish. Sorry but they are. I'm a game programmer and I've very easily made AI that doesn't actively stop looking for you.
Honestly your basic algorithym goes as such:
1. Am I actively searching?
No = carry on basic patrol pattern
Yes = set to actively searching and then just loop run search code
Put simply to NOT set them back to basic patrol all you do is NOT break them out of their active search code. I mean the fact that the guards do try to find you in certain instances means that the AI for searching is already there. So it;s just a case of setting a variable that says whether you have been attacked or not to true when you have been attacked. Then when you'd normally go back to patrol mode you just bypass that if 'attacked' equals true. It's about as easy as coding gets
Honestly your basic algorithym goes as such:
1. Am I actively searching?
No = carry on basic patrol pattern
Yes = set to actively searching and then just loop run search code
Put simply to NOT set them back to basic patrol all you do is NOT break them out of their active search code. I mean the fact that the guards do try to find you in certain instances means that the AI for searching is already there. So it;s just a case of setting a variable that says whether you have been attacked or not to true when you have been attacked. Then when you'd normally go back to patrol mode you just bypass that if 'attacked' equals true. It's about as easy as coding gets
Haha, I love all the experts here talking about this revolutionary technology and then very quickly disappearing when somebody with a brain shows up.

But being as they've built a ton of games that use insane pathfinding I'm presuming they've already got something that works and is fast. So if you've got that and you've got working line of sight (Within reason. I mean you're not gonna line of sight around the edges of items but more use base height and width) then really I don't see the problem. You plug it together with some conditional checks to create a more realistic response and you're done