...if I'd loose a packet containing a keypress, it would fail the next update (out of sync)
Actually, I don't think that's what the article is saying. If a packet is lost, you perform retransmission, and if a command (and its acknowledgement) arrive too late, you skip the input, or push it back to a later game tick. The system is built to handle identical simultaneous game simulations, and be robust enough to deal with networking problems such as you mentioned.
The "out of sync" thing was to check to make sure all simulations are the same at all times - essentially a debugging tool that allowed the developers to track down why it happened (assuming normal, non-cheating or code modifying elements), and make the changes necessary so that a player would never see an out of sync message. If they were at all common in Age of Empires, I'm sure you would have heard about it, because (as you alude to) if the game fails an "out of sync" check, the simulation must be halted - which would really ruin the player experience.
Now, it would be interesting to see this: Since your game is being developed it in Java, the same bytecode might run slightly differently on various OS/VM combinations, and therefore make trying this in a cross-platform scenario especially difficult. Of course, if anyone has any practical knowledge (or counter argument) feel free to chime in here. I mean, in a precompiled environment, you at least know that the same machine code is being run on all computers at once. From one platform to another (say Intel to PowerPC), you actually get different machine code, guaranteed.
Now, again, I make the call for someone who actually knows about this stuff to chime in. I certainly don't mean to scare you off from the idea, but I certainly don't know the inner workings of a JVM.