Virgin allocate a specific number of seats in each class for reward bookings per flight (I think it's 4 in Upper normally), and the agent was correct in saying they don't automatically release more, and only a cancelled booking would make a seat available.
Virgin do, however, occasionally convert Z class availability into reward availability, but this is only something that can be done by HQ and normally only in exceptional circumstances (ie, if one of their GVTOP's need a seat, or somebody dropped an egg and they need to fix a problem).
Whilst I've found Virgin to be better than most in allowing me to actually redeem miles, you still need to allow for someone getting in before you... and May is pretty short notice for a reward booking by anyone's measure.
Pix