IMHO easier way to make more human aim is to make bot predict position of player by using old stored data of enemy's position and velocity. That way if enemy suddently changes direction of movement and/or speed it takes some time for bot to follow this change (instead of noticing instantly). I think this happens with humans too.. you don't see world instantly since processing data (brain) from your imaging device(s) (eyes) takes time and this slight time different is fixed by prediction.
Following example code uses linked list for storing timestamped position data (origin and velocity). Position data is stored every 33ms and GetPredictedPlayerPosition picks two data slots near time value passed to it and makes simple prediction of player's position. Works good on my bot/server 9_9
http://evilspy.1g.fi/botpredv1.txt