For 1.6.1.0 the answers are no and no (if it were simple enough to provide as an answer in a peer support forum, it would already be in the official code - also, any code provided here cannot be used in the official code, so if someone were to provide code the sensible way would be as an official new feature patch against the trunk version).
set_destination appears to be the most likely place in the code to start.
If it does support TEL: in 1.8.x, the easiest way to work out how to configure it would be to look at the error message in the CLI log, and make sure that you used the string that it was complaining about not matching.
Have you considered asking IMS whether they support SIP:? I believe support is required for SIP implementations.
Doesn’t appear to be any support in the trunk version either.
Incidentally, it isn’t TEL:+ format, it is TEL: format. The plus is part of the number and I would expect Asterisk to treat it that way, if it were to support TEL: