I agree with the turret delay but like many (I'm guessing), it's annoying that it resets every time the alien barely moves out of it targeting area (I'm not sure how the turret targets, I haven't looked at the code). As a fix, why not setup a variable, and have it increase variably (depending on a timer) and then when it moves out, instead of moving to 0, have it move down via the timer again. Bad explanation, sorry I can't explain this with words...
E.G.:
1. Alien moves into range of turret.
2. Turret charges up based on timer and variable, the timer increasing the variable by a certain amount every few milliseconds.
3. If the alien moves out of range, the variable decreases via the timer and little by little.
4. If the alien moves back into range, the charge is still there, allowing a smaller amount of time to shoot.
5. If the variable reaches a certain amount, shoot.
NOTE: I thought this would have been suggested probably but I didn't find any references. Maybe I didn't look hard enough?