Несколько потоков, формирующих комманд буферы — это как раз правильно. Очередь для рисования нужна в 99% случаев одна, я думаю. Мне кажется, внутренний тредпул — это немного не то, что ждут потребители от SDK в общем случае, т.к. это лишает их контроля над конфигурацией приложения. Внешний тредпул, который отдаётся в SDK через его API — это самое универсальное решение. +предоставить реализацию по умолчанию для тех, кому всё равно.