Real world tanking isnt a rotation. Latency, rage problems, and a million other things will throw a lovingly crafted, theoretically optimal ability rotation into a tailspin in mere seconds. Fortunately, the pecking order of what to do is fairly clear, and will become second nature with some practice.
The GCD, your swing timer (heroic strikes), and shield block are all entirely separate. Try not to think about planning abilities with them all in some set order... it as doing three things at once.
The GCD is king. Instant abilities are you bread and butter. Shield slam and revenge are the top two, and when they are on cooldown, your most rage efficient threat comes from devastate and/or sunder. If you dont have enough rage to keep mashing away on the instants, don't heroic strike or shield block. If rage is a concern, then heroic strike is too inefficient, and shield block isnt necessary... if you were getting hit hard enough to warrant shield block, you would have more rage. Youll also need to mix in debuffs, taunting, etc on the global cooldown... for something like thunderclap, replace a sunder or devastate. For a taunt, well, you pretty much gatta do it when you gotta do it
If you are trying to maintain #2 aggro without incoming damage, try to save your bottom 17 rage for shield slam. Only pop a sunder or devastate when slam is on cooldown AND you have more than 29 rage. Delaying a sunder or devastate a bit wont hurt your threat generation as much as missing a shield slam cooldown will.
If you are fighting anything that can hit you fairly hard, and you need shield block, pop it whenever its up. Again, dont think of it as how many abilities you can squeeze between refreshing shield block... just pop it when its up. Theorycrafting can probably reason out holding out for that last second between the cooldown and the buff expiration, if it doesnt get consumed on charges... but thats 1 second, minus latency, and minus reaction time. Go ahead and pop it.
Finally, get the heroic strikes rolling if you still have leftover rage. When talking about rage-rich situtations, every swing means EVERY SWING. A absolutely perfect tank would do 0 white damage to vaelstraz. Again, dont think of heroic strike timing as having anything to do with your GCD abilities. When rage is up, activate it.
BTW... if you are trying to come up with a rotation to throw into a /castsequence, I have one recommendation: dont. A big part of being a good tank is making the quick, correct decisions on what abilities to use; and begin a great tank means getting that to be second nature so that you can keep it up while moving, breaking fears, charging around, managing multiple mobs, and doing whatever else an encounter requires. A macro cant make the good decisions for you.
If you dont feel you want to put the effort into tanking without a goofy macro, I respectfully suggest that perhaps tanking isnt for you, and you may enjoy a different role or class more.