Help troubleshooting mysql deadlock
This is an ugly solution that may introduce other issues.  It is offered as a means to eliminate the lock you are experiencing.  Auto_increment is preferable to managing numbers in this manner.

The number could be managed in its own table incremented as needed.  This table could be locked at no detriment to the main table.  When write locked, other sessions are prevented from using the table, the locking session can then increment the number (and store it in a variable - something meaningful like @next_position) then releasing the lock immediately after the update.  The number is then used in your main query - no join, simply "LQ.initialPosition = @next_position".

You may still have contention on the position number table - but these locks shouldn't be held too long - only during the incrementation to ensure only one process increments the number at a time.  

The locking scheme could be eliminated, but this would require knowing the current number first which would then be tested in the update's where clause to eliminate race conditions with other sessions.  A loop will be necessary to try again if the update doesn't work (another session made the update first).  This complicates the use of the table but reduces the potential for trouble.