Latency ought to be easily enforced, yeah. The other vagaries of human play, like pixel-precision on mouseclicks and mathematical precision calculating damage and health, are harder to model. But I don't think they'll be impossible, and I think they soon won't be a disaster for the AI.
I.e., if an event occurs in the game, it's placed in a queue and the AI "sees" events pop out the other end of that queue, at a minimum latency and at a maximum rate (i.e. if too many things happen at once the AI is overloaded).
After that the AI makes decisions and puts the command in a command queue. The command queue works the same way: commands pop out the other side (to the game) after a minimum latency and at a maximum rate, to simulate the minimum roundtrip from input to action, and the maximum action rate.