Wow thanks for testing that--rlly appreciate the help! I tested as well and also reached the conclusion that the tool is loaded at the start. That means we probably can't update it mid-call unfortunately :/
Seems like a good option would be if Vapi had some mechanism for us to manually initiate a transfer from a standard tool. That would allow the workflow of -> custom transfer tool triggered -> custom backend API invoked -> backend fetches transfer number -> backend indicates to Vapi to transfer the call at the end of next turn (or just tells Twilio to do it directly, although that could get awkward).
But I understand why it wasn't designed that way, this is a pretty niche edge case lol