Hi Michael:
You are correct that the leading + character in the Caller ID Number prevents Superfecta rules from working. If this was my system, I would set it up such that incoming CID had no non-numeric characters. Since you already have a user defined context, add a line like this just before the goto line:
exten => _.,n,Set(CALLERID(number)=${FILTER(0123456789,${CALLERID(number)})})
This will ensure that the Caller ID number only has numeric characters, and then Superfecta dial patterns will work like they always have.