Sorry if you already covered this but all it seems that you need to do is...
Create a Progress Bar that starts when an auto attack is triggered whether it lands, misses, etc. Very similar to the progress that bar that starts when you cast a Spell or Combat Art. Then have that progress bar determine it's length based on the delay of your auto attack. If you can create both that should work and you won't have the issues you are discussing such as lag, being out of range, and so on.
So basically...
You autoattack: Progress bar timer starts based on current delay and does not reset until the next autoattack is done. Not an infinite loop which reads your delay because weapon delays will change, auto attacks can be delayed, and lag can cause the timing to be off.
I am not a coder so I have no idea if this can be done or how it would be done. Wish I did because this would be a very helpful addition. However this seems to be the only way to do this and have it still be accurate.
Good Luck.
