You can find what the transaction log is waiting on by running the following and replacing <dbname> with the name of the database in question. This should point you in the direction to resolve the issue.
SELECT name, log_reuse_wait_desc
FROM sys.databases
WHERE name ='<dbname>'