I haven't done any testing in several years now, so my knowledge might be a bit skewed, but from my understanding and what I remember being told over the years, single core use isn't quite accurate (at least not for this game). The theory is that the client and probably server can utilize 2 physical cores and benefit from 2 virtual cores as well, so 4 threads total. My guess is OP has a 4 core / 8 thread CPU, which would explain the 50% utilization. If the OP has an ancient 2 core 4 thread cpu, then I stand corrected.
Of course, do correct me if I'm wrong as I may be a bit outdated now.
I was stating it as this game is the exception to the rule. However, you aren't going to see heavy usage on more than one core. The minimum requirement for the client is four physical cores. One core will be used for the primary client thread and may often reach 100% when it is busy. The client will also send child tasks to other cores/threads. These child tasks aren't well optimized IMHO though, and the main core thread is still heavily reliant on the data that is being processed in them. So, if something is calculated on a child task using another core, that part of the equation on the main core is basically on hold until the data comes back.
On a Windows OS system, the client is capable of utilizing 4-6 cores/threads for these child tasks. However, you won't see very high CPU usage on those cores/threads as a result. Probably only 1-2% for each. Meanwhile the primary core is clocking at 80-100% processing all of the data.
On Linux OS, multithreading gets utilized a lot better and the client is capable of taking advantage of all the cores. This helps to improve performance by delving out more child tasks at once and getting faster responses on them.
Still, you are limited to the capabilities of the single core. If it is an older architecture, it may not process the data as quickly, even with higher clock speeds.
For example, I can overclock an i7-3930k to 5.1GHz and run a server on that. However, if I run the same server on an I7-8700K running at 4.25GHz it will out-perform the old I7 by a margin of 30-40%. Because of the newer architecture, better cache, and improvements to the way threads are handled. Even though the two chipsets at those clock speeds will benchmark within 5-10% of each other in raw numbers.
As for the OP, most of the AWS servers only have two virtual cores, which is half of what the minimum requirement is.