Descobri que, embora seja possível (e sem dúvida mais rápido) no VirtualBox (minha experiência com a versão 5.1.0) alocar vCPUs para uma VM baseada em processadores lógicos, é possível que ocorram problemas no sistema operacional convidado ao executar em alta carga . No meu caso, uma VM do Windows 2012 R2 com 12 vCPUs em um host Ubuntu 16.04 de 8 núcleos (que relata 16 processadores lógicos) seria BSOD durante alta carga de CPU com a mensagem de erro DPC_WATCHDOG_VIOLATION. Uma análise minidump usando osronline.com mostrou e1g6032e.sys (o driver de rede Intel 100/1000 nativo do Windows) como a causa da violação.
Isso me leva a acreditar que o tempo dentro do sistema operacional convidado é impactado negativamente ao alocar vCPUs com base na capacidade lógica do processador e na execução da VM em alta carga por períodos prolongados. No meu caso, 100% da carga da CPU na VM do Windows por alguns minutos resultaria no BSOD. Após reduzir a contagem de vCPU para 8 (o que corresponde à contagem de núcleos físicos do host), a VM do Windows não faz mais BSOD em situações semelhantes de alta carga. A documentação online do VirtualBox diz que é preciso fazer isso, mas não oferece nenhum motivo.
No meu ambiente, havia também duas outras VMs do Ubuntu em execução, cada uma com 8 vCPUs próprias. No entanto, a carga sobre eles era mínima no momento dos problemas de BSOD da VM do Windows.