Lock wait timeout exceeded on insert despite low lock_time in the slow query log
The query times are wall time from start to finish.  The lock times are times spent actually locking affected tables.  If you run

select sleep(60);


You'll see a slow query entry with a query time of 60 seconds and no lock time.

50 seconds is a standard lock wait time out setting. Run

show variables like 'innodb_lock_wait_timeout';


I'll bet it's 50.  The queries in your OP are likely showing a query time of this b/c of the time out setting.  They're probably sitting there not really doing anything waiting for some other query to finish until they're effectively killed.  If they're hitting that limit it should be easy to just run show processlist; to see what's going on.  You'll likely see many threads in a Locked state (i.e. doing nothing but waiting) where there's one thread "doing something".  

Are your truncated "insert" statement ultimately doing some kind of expensive subselect from other tables?

Is your application explicitly locking tables and not letting go?

Edit: Queries hitting a lock wait timeout does not mean they are holding on to a lock for that limit but rather they got tired of waiting for someone else to give it up and let them have a go.

show engine innodb status\G


Can also give you insight to what is locked at the moment and who is holding them.  Although the output can be a bit cryptic at first glance it can give some pointers.