Given timings with macros firing in the same event, my concern is that even if you could reliably get one macro to consistently activate before the next macro, who is to say what other delays, from network latency to spelsrvr processing, may result in the second macro completing before the first?
The only true way I feel you could ensure the second macro fires after the first is to include that second event specifically for the second macro and introduce a delay time to fire. If you want to go further than that, include a condition in the second event that will only be true if the first event/macro fired successfully (ie: have it test if the first event/macro combination turned on a flag to indicate it had fired successfully).