Well I didn't get exactly what you want, but here's what's in my cfg :
QUOTE
// UPGRADING
alias skulkupgrade1 "impulse 107; wait; impulse 110; wait; impulse 101" // CELE/CLOAK/CARA
alias upg1 "bind mouse4 skulkupgrade1; wait; alias switchup upg2; speak one"
alias skulkupgrade2 "impulse 108; wait; impulse 112; wait; impulse 102" //ADRE/SOF/REGEN
alias upg2 "bind mouse4 skulkupgrade2; wait; alias switchup upg3; speak two"
alias skulkupgrade3 "impulse 107; wait; impulse 111; wait; impulse 101" //CELE/FOCUS/CARA
alias upg3 "bind mouse4 skulkupgrade3; wait; alias switchup upg4; speak three"
alias skulkupgrade4 "impulse 109; wait; impulse 111; wait; impulse 101" //SILENCE/FOCUS/CARA
alias upg4 "bind mouse4 skulkupgrade4; wait; alias switchup upg1; speak four"
alias switchup "upg1"
bind mwheelup "switchup"
Basically, when i play skulk, i often use the same 3-upgrades-combos ( or just 2, whatever )
So, whenever i go and use MWHEELUP for the first time i'll hear " ONE " and then if i use the MOUSE4 button i'll upgrade to cele/cloak/cara ( just have to press mouse4 for each upgrade, so first press = cele, then second press when done = cloak, etc... ). If i ever go mwheelup again, then if i press mouse4 it'll go adre/sof/regen etc...
You can improve this as your wish, up to i-dunno-how-may upgrades combo.
I still use the popupmenu sometimes for outstanding upgrades like redemption

D
Also, note that for example i always use cara/cele/focus as fade so i don't need this cycle thing, just mouse4 bound to cara/cele/focus is OK. But you need a config for each lifeform then ( or do a big cycle script ).
Hope I helped you out.