I think the biggest reason is that you have no burnin in these analyses. My typical sump and sumt lines look like this:
sump relburnin=yes burnin=0.25 nruns=2;
sumt relburnin=yes burnin=0.25 nruns=2;
This means that a quarter of generations at the start are thrown out, which is how it should be. The exact number matters less (you can go with 0.1-0.25), but it is important to throw out the early part. That is because chains are very far from convergence at the beginning, and that propagates all the way through even when sampling for 20 million generations like you did.
Beyond that there are some other things I would try, although they are not as obviously wrong like your burnin settings. The temperature may be too low, allowing the sampling to get stuck in a local minimum. I would try values in the 0.05-0.1 range. Same for sampling frequency: doing it once in 1000 generations is not necessarily wrong, but you may want to try smaller numbers, in the 100-500 range. That way you may not need 20 million generations to achieve convergence (2-10 million may be enough). If you cut down the CPU run by half and still get the same result, that should be sufficient as 4 days doesn't strike me as too long. Even if nothing works better from the suggestions I made, you could still go with your CPU result since you already have it.