I'll leave my conclusion based on my interpretation here because I haven't seen this answered concretely.
For system specs there is one mayor and important aspect and that is CPU. With the most important benchmarks being:
- 4+ cores
- Single Core performance
- Quad Core performance
The two most important and demanding threads will each be bound to the maximum single threaded performance. Windows and all other processes and X4 process threads should be using the other cores, to make optimal use.
In practice (theoretically, if anyone knows how to achieve this please let me know) using my CPU a i7-7700k as an example, which has a fairly good single thread performance and is 4 core with hyper threading.
Now I'm a bit mixed on hyper threading in this case. I would turn it to make sure the two main processes get as much single core performance as possible. However if you have many things running in the background and there are many threads spawned by X4 it might be beneficial. HT basically optimizes thread switching, if you want to run a single thread on a single core as efficiently as possible it should be off. If you expect a lot of thread switching it should be on.
Now let's assume we enable HT. Since in theory we can have our cake and eat it to

In WIndows Logical processors are interleaved so 0,1 are core 1.
We'll want to limit Windows and all other programs to CPU 0 and 2 (core 1,2).
We'll give X4 a real time priority and bind it to CPU 1,2,3,4,6 (core 1,2,3,4)
CPU 4 will be limited to simulation thread
CPU 6 will be limited to rendering thread
So CPU 5 and 7 will be IDLE, we want this to make sure core 3 and 4 are dedicated to one task.
Now for how to actually achieve this. Binding to cores can be done by affinity for a process through task manager (which is a shit load of work!). The priority of a process can also be set through task manager. The rest is a mystery.