This is perfectly OK to do - nothing should crash or hang as a result of it.
However, your "so that it's using minimal CPU" is a little worrying. Are you running more MPI processes than you have hardware threads available to execute them? That sort of oversubscription is generally terrible for performance, and should be avoided. Best performance is often seen with one fewer process per hardware node than the number of hardware threads it offers, to allow system processes someplace to run without pre-empting the application.
The case where this could be well-justified (on which I just published a paper) is if you have a section of your program where you have less parallelism than you have processes. If you're running on Intel CPUs with Turbo Boost, then having the idle processes actually sleep can allow the core(s) running the working process(es) to run at a higher clock speed.
this_thread
is therefore perfectly fine, but mind that MPI often spawns additional threads for internal use and you should not mess with them (which is actually hard to impossible using the C++ interface anyway). – Coney