I need to stop this misconception.
Rapid shot IS NOT instant as you've thought. You need to account Snapshot delay cut first, after that Rapid Shot will cut that delay further up to 50%. Since max'd rapid shot from bow is about 1.5s, you'll see it as instant shot. But it isn't, the timer start ticking as soon as the "pulling the string" animation plays.
You can compare the Rapid Shot proc from normal longbow and the one from Loxley bow. On Loxley Bow, you'll quite often see firing animation finishes playing before the animation of pulling the string finishes. On the other hand, you won't see this occasion on normal longbow.
And as for when to gear what:
precast : Snapshot/Rapid Shot
midcast : StoreTP/Enmity-/Recycle
I'm still looking for a spellcast that's relatively simple, or have that one (by Motenten) explained a little.
OK. I assume you're confused with the Dancing Chains thing in my XML.
It's basically trigger when you are engaged|idle|aftercast|resting.
Then what does Dancing Chains do ?
1. </cancelspell>, basically strip the spellcast default processing (doing precast, midcast, and aftercast) to precast only. Why? Not only it makes the spellcast execute more efficiently, you can also converge all those 4 situations processing into 1 block of code.
2. Recheck barrage activation
3. going back to your idle/running gear
4. stop processing further by doing </return>
This is to:
1. ensure after you finish shooting in enmity-/stp gear, you'll go back to your running/idle gear (or stp/snapshot gear, in my case),
2.and also deactivate barrage variable to normal if you perform normal shot when barrage activates (you need to have barrage variable active if you perform a WS, so that next time you perform normal shot, the spellcast will switch to barrage shooting gear, not normal ranged attack)