Видимо подход совсем в корне не верный у меня. Потому что еть еще одна проблема - возникает мерцание меша на экране, при попытке запроса обновить буффер из потока пользователя. То ли не каждый цикл это обновление происходит, то ли еще что-то, приходится принудительно его оставлять сразу после glDrawElements
просто выполняй команды в основном потоке, а собирай списки команд в разных