Ariadne,
first check if the ivr script consider # symbol as an end-of-digits sign. can't remember exactly what's this property name in prompt & collect block, but it's there. if it is turned off, ivr would wait for a specified timeout to expire, and that may cause the lengthy delay.
second, this scheme will always have unavoidable delay in call setup. that's because definity sends these parameters in form of dtmf codes to the ivr, and this process is slow, especially if you have to pass long digit strings. both these parameters are available via cti interface, consider using it.