...You didn't say what the original settings were that you were coming from. For preempt, I'd guess you were probably using PREEMPT_NONE. The config option descriptions are actually pretty good here:
The timer frequency is going to affect the granularity of how often we switch between tasks. Higher frequencies are better for interactivity, lower frequencies incur less overhead for longer running tasks. These sort of coincide with the preempt descriptions, a lower timer frequency allows tasks to run uninterrupted for a longer time, improving throughput, a higher timer frequency allow better interactivity since there are more scheduling points, at the cost of some throughput.
If you really want to isolate the VM from the host for scheduling purposes, you can find other references in the old archlinux thread to using isolcpus and nohz_full. The isolcpus option removes cpus from the general scheduler, so those cpus only run the tasks manually schedule for them and nohz_full stops the timer tick on the specified cpus whenever possible. The idea is to isolate a set of cpus and use them exclusively for running the vcpus, providing maximum throughput to the VM, while leaving some cpus for the host to handle interactivity and background tasks. The trouble here is that it's great if you want to permanently divide a system between VMs or potentially have the host tasks run as subordinate tasks to the VM, but it makes it difficult for the host to have full access to all the processor resources when the VM is idle or unused. cgroups (cpusets) would probably provide the capability more dynamically, but I don't know that anyone has really documented it for this use case.