Entonces, para ampliar la otra respuesta, este es el día en que descubro TRUNCATE no es equivalente a DELETE FROM table . Tonto de mí.
Según la documentación :
Esencialmente, un proceso en el SLEEP estado estaba leyendo la tabla, pero el TRUNCATE estaba tratando de hacer una declaración DDL, por lo tanto, se bloqueó hasta que el otro SLEEP -ing proceso fue eliminado.