That's actually something similar to what I have in my characters, they can tech and wall jump whenever the recovery flag is active.
I'm currently updating it to fix a specific bug, but this is what I use under statedef 5050 (the hitfall state where you have the ability to air and ground tech)...
Spoiler, click to toggle visibilty
[State 5050, 6]
type = ChangeState
triggerall = alive
triggerall = CanRecover
trigger1 = (((command = "holdup") && (command = "holdfwd")) || AIlevel && random < cond(abs(p2dist x <=240),250,999)) && (Vel X <= 0) && ((backedgebodydist <= 10) && (backedgebodydist > -10)) || ((command = "holdup") && (command = "holdback")) && (Vel X >= 0) && ((frontedgebodydist <= 10) && (frontedgebodydist > -10))
value = 56
The actual state where the wall jump recovery occurs (you'll need to make your own custom animation for wall jumps
Spoiler, click to toggle visibilty
; Wall Jump
[Statedef 56]
type = A
physics = N
anim = 56
velset = 0,0
ctrl = 0
[State 56, Invuln]
type = NotHitBy
trigger1 = numexplod(56)
value = SCA
time = 12
[State 56, Recover FX]
type = Explod
triggerall = numexplod(12000)=0
trigger1 = numexplod(56)
anim = 18800+1*(teamside!=1)
ID = 12000
pos = cond(teamside=1,10,260-10),80
postype = left
facing = 1
vfacing = 1
bindtime = -1
removetime = -2
pausemovetime = 999999999
supermovetime = 999999999
sprpriority = 999
scale = 0.65,0.65
ontop = 1
ownpal = 1
ignorehitpause = 1
[State 56, Spark]
type = Explod
trigger1 = Time = 0
anim = F72
facing = cond(((frontedgebodydist <= 10) && (frontedgebodydist > -10)),-1,1)
pos = cond(((frontedgebodydist <= 10) && (frontedgebodydist > -10)),20,-20),-50
postype = p1
sprpriority = 3
[State 56, Ctrl]
type = ctrlset
trigger1 = time = 8
value = 1
[State 56, PSND]
type = playsnd
trigger1 = time = 8
value = 2,14
persistent = 0
[State 56, 0]
type = Turn
trigger1 = (Vel X >= 0) && ((frontedgebodydist <= 10) && (frontedgebodydist > -10))
persistent = 0
[State 56, 1]
type = Velset
trigger1 = animtime = 0
x = 9
y = -6
[State 56, 1]
type = Statetypeset
trigger1 = time = 9
physics = A
[State 56, 2]
type = ChangeAnim
trigger1 = animtime = 0
value = 42
[State 56, 3]
type = ChangeState
trigger1 = time = 15
value = 51