I only looked quickly, I admit, but if you want to preserve log information over a transaction boundary, why don't you use a table variable instead?
Table variables aren't affected by transactions.
Paul
Paul White
SQLPerformance.com
SQLkiwi blog
@SQL_Kiwi