I had the same problem. Tried different voice modems. The same results. Dialing ! did not send flash and call was not forwarded.
It seems to me that many modems have problems sending dil command when already online.
To TRANSFER preference I have put ^MDT! instead of just !
The number I am transfering to I write ^MDT13 instead of just 13.
I do not know exactly why it is so, but it works NOW! I hope for you too