I haven't personally done anything with the speed reference, so I'm not 100% sure of what it returns. It could be what you think and return what your current speed is, or it could simply be what speed your character can run at (i.e. a static amount, that wouldn't update when you are standing still). Maybe somebody else can comment on that to confirm, or I can toy around with it later tonight.
The other thing I'm not sure on with gearswap is how often it updates, if its set to only look for certain packets (for example, when you engage, disengage, weaponskill, spellcast, etc..), you may find yourself in a situation that it only changes your feet when something like that occurs. Just not something I've ever had much reason to test.
If it does update, I would try something like:
Code
if player.speed > 0 then
sets.idle = {feet = 'Herald's Gaiters'}
else
sets.idle = {feet = 'Serpentes Sabots'}
end
You would take out your current sets.idle and replace it with that, fill in all your other gear appropriately. One thing of note, neither of these pieces are ilvl, so they don't have the stat vomit or meva that the updated gear has. So if you get hit by an AoE it's gonna hurt, not sure I'd chance it for the miniscule gain.