Первый раз (когда я словил эту проблему) я просто написал демона, который де(эн)капсулировал GRE без всяких там интерфейсов. Всё сразу заработало. Возможно, стоило бы написать то же самое для QinQ VLAN'ов (тем более там не так сложно), но я уже старый и ленивый. Пойти за джуном на ебей много проще )))
Я не уверен до конца, но мне кажется, что потоки иногда перезаписывают дескриптор друг-друга, или же происходит что-то похожее на это Или, как вариант, это из-за того, что во vlan-mon выставил тайм-аут сутки