I don't think that actions actually queue outside of macros. You can fire an action early because of lag. While on your side, it looks like your GCD is not ready yet, at the server (one round trip of lag away), it is. Macros must use a client side check, which would remove the lag effect.