I have a similar experince and been fiddling with every setting on earth to find some FPS during hordes.
It seems the game, despite any prerendered frames setting, can’t render and run the game simulation at the same time. So both GPU and CPU contribute to the horde performance. First the CPU handles the current timestep, asks to render, waits with zero load and continues when GPU is ready. I think that’s why when not in hordes the GPU usage can be high and CPU lowish (with 100-200 fps) and then during combat both CPU load goes up a bit and GPU drops to low. I’d love to hear of settings which enable the game to utilize 100% of both if necessary, but my thinking is that this is not possible due to poor threading. Yes the game knows how to split some jobs to multiple threads, but can’t do anything while rendering. Their engine dev wrote the renderer needs some data to be locked during render so simulations cannot run due to having locked resources. And then one big CPU hog is the scripted part (meaning almost all of the game logic) which seems to not be either threaded at all.
For example, UI tweaks mod, which I assume to only modify how the UI is places / sized, eats a good amount of CPU time and is 100% done on the same thread that does all the rest of the scripted logic. Noticed that because in the keep I got under 80 fps except when pressing X for third person view with no UI bumped fps to over 100. That mod had to go unfortunately 
The single most experience enhancing setting was to install RTSS and limit FPS to 80 with that. (NVidia rate limiter is almost as good) Frametimes are very stable and CPU load is low if nothing major is happening.
Varying frametimes can make even 70fps feel like 20.
At the moment I landed onto overclocking my CPU and ram as much as possible (gained 20-30 fps), NVidia settings to forced 8x high quality AF, AA disabled (also ingame, both FXAA and TAA) but 1.2x DSR instead. Textures on medium, all shadow filtering on low, sun shadow on, shadow maps at [512 512], async_fog = true, fog quality low, volumetric quality low, skin shading off, AO quality medium, SSR off, local lights cast shadows = 0, particle lights on, particle shadows off, fog shadow off, worker threads 10, scatterer 0.25, lod anim 0, lod objects 0.85, lod decoration 0.20 and using DX12.
Cpu 3930k @ base 3500 all core boost 4375, ram 2333 @ 10-12-12-30-2, GPU stock 1070.
For some reason the game ran better with all 125 bclk. Never touched that before (with recent CPUs), but it makes some lanes run 25% faster and the diff between CPU idle and max multipliers is lower (44 vs 35@125mhz).
Hope this gives you any new ideas. And truly hope Fatshark fixes their game performance even if it meant no other content updates for the next 6 months.