Have you changed anything? Because missling lots of cs this wasnt happening.
IcyOrbwalker miss cs too. Tested and GamsteronOrbwalker lasthit is better than Icy. Icy has better laneclear. You say that 100cs/10.00 is bad ? Sometimes miss minion (after lasthit attack enemyMinion has low hp and allyMinions will kill him -> this issue is in IcyOrbwalker too). Need handle allyMinions attack cancel. I can check timers -> if minion isDead or hasmovepath between startAttackTime and attackDoneTime then attack was canceled. Ofc i can add activeAttacks array too -> so will compute enemyMinion health based only on this attacks. My orbwalker predict future attacks. For perfection need calculate only activeAttacks -> in this way allyMinion isAttacking and allyMinion.aadata.target == enemyMinion.handle. Sometimes allyMinion change position and in this time has same allyMinion.aadata.target ID -> my orbwalker compute dmg from this minion too - but should not(bad timers and allyMinion can change target).
PS anyway nobody can do perfect lasthit If player send attack to minion then allyMinion can cancel attack in this time. Calculations is based on unit.aadata.endTime - this value is changed on attack animation, not on attackDone - so check for attack cancel is worth). Icy has same issue with lowHP minion after lasthit attack. Solution is to change allyMinions dmg to lower value for example 26->20.