I think there are several things to distinguish here: concurrent LP algorithms (e.g. running barrier and simplex in parallel), deterministic vs opportunistic, and crossover (which happens after barrier). Note they are controlled by different parameters.
First the concurrent part, which mean "run multiple algorithms in parallel".
If you give CPLEX an LP to solve and multiple threads, there are several strategies CPLEX can use, see https://www.ibm.com/docs/en/icos/22.1.0?topic=parameters-algorithm-continuous-linear-problems.
The original post indicates "LPMethod: Barrier", so I assume there is no simplex vs barrier running concurrently, i.e., only the barrier algorithm is executed and it uses all available threads (in your case, 4).
Second, the deterministic vs opportunistic mode. This distinction exists because, as parallelism is involved, things may not be deterministic anymore, i.e., you may run the same problem on the same machine with identical settings, and get a different answer. In particular, it only makes sense when multiple algorithms are executed concurrently.
From the CPLEX docs:
deterministic means that multiple runs with the same model at the same parameter settings on the same platform will reproduce the same solution path and results. In contrast, opportunistic implies that even slight differences in timing among threads or in the order in which tasks are executed in different threads may produce a different solution path and consequently different timings or different solution vectors during optimization executed in parallel threads. In multithreaded applications, the opportunistic setting entails less synchronization between threads and consequently may provide better performance.
Finally, crossover. This is the step of taking an interior-point solution and polishing it into a basic solution. AFAIK, CPLEX applies crossover by default.
While I cannot say for sure without seeing your exact CPLEX log, I believe what you describe is the crossover: after the barrier algorithm, CPLEX will execute a primal and/or dual simplex to perform crossover. This step is single-threaded, because simplex algorithms are single-threaded
If you're only solving an LP, and do not need a basic solution, you can switch it off; see CPLEX docs on how to do that.