Но как я понял операция append() и removeFirst() имеют встроенный мютекс и дополнительно можно не использовать сторонние мютексы или нет?
Мне неизвестен ни один контейнер ни в std:: ни в Qt который имел бы встроенный мутекс. Все эти контейнеры "потоко-опасны" и засисяться нужно самому.
Можно ли использовать QList в качестве буфера для бинарных данных(25-30 айтемов)? или посоветуете альтернативу?
На таком порядке данных (25-30) достоинства контейнера особого значения не имеют. А если сам айтем хоть сколько-то приличный (32 байтв и более) то вообще QList - хороший, а может и лучший выбор