I just encountered this error.
The steps were
Begin Tran
TRUNCATE Table1
INSERT INTO Table1(Columns...)
SELECT Columns From Table1Backup
This would give the error at the INSERT statement
Changing the Truncate Table to DELETE FROM Table1 allowed the process to work. I would guess that the way Truncate works is preventing inserting into the table (due to locking?) until the Truncate has been committed.
Perhaps other situations are similar with an attempt to update or insert into a table that is locked within the transaction.
--
JimFive