Personally, I try to avoid using Local channels wherever possible because they make the CDR much more difficult to follow and they can introduce strange behavior like the early answer you experienced.
The reason you were only receiving one CDR record is because Asterisk was treating it as a single call. When you Originate, you are setting up two legs of the same call (from Asterisk's perspective). There are at least two ways to deal with this:
1) Your reporting tool can be smart enough to realize that the same call should result in two billing records since it connects two customers
2) Alternatively, if you really need two CDR entries, then try using the ForkCDR dialplan application. You can call it like this from Adhearsion:
execute 'ForkCDR'
/BAK/
--
Ben Klang
Mojo Lingo -- Voice applications that work like magic
Twitter: @MojoLingo