I don’t know what odrive limitation you encountered that made you observed it couldn’t do reverse. For position control I do forward and reverse myself. For current and speed control, I don’t know.
I happily used a vesc before on hall effect gear bldc motors in speed control application for modest autonomous robot (not competition though). With a pair of them (therefore with two vescs), I transported over 230kg for hours and hours. It’s really solid. I control them through uart. It works in forward (positive speed command) and reverse (negative speed command). I have seen two teams using VESC for robot race competition (and winning the race with it! I even saw their car also going in reverse direction because their AI vision algorithm had detected an obstacle at last moment)
In fact, the reason why I used vesc is because I couldn’t get odrive hall effect sensors to work. In between the documentation got better and some people published configuration scripts that should make things easier now.
VESC configuration wizard (vesc_tool) is really super user friendly. On the downside, I find vesc community not as vibrant (and their forum software sucks too)
I have used some cheap ESC (from hobbykind, yep and another manufacturer I forgot the name), in current control applications controlled through pwm too. But back then I only need forward and brake (no reverse). I’m pretty sure I have seen a friend of mine using same cheap ESC with pwm on forward/reverse on a race RC car.