O problema não era que o controle personalizado não estivesse desenhando. Foi o meu uso indevido de QML.
O carregador dinâmico estava adicionando o conteúdo a um controle de 'coluna'. Os controles do layout exibem 'comportamento indefinido' se você os usar incorretamente. Mudar para o layout manual usando âncoras corrigiu o problema.