The functions that could lock this mutex, i.e., SetRPCWarmupStatus(), SetRPCWarmupFinished(), RPCIsInWarmup(), CRPCTable::execute(), do not call itself recursively, and do not call each other either directly or indirectly. Therefore, the g_rpc_warmup_mutex could be a non-recursive mutex.
This is a backport of core#19399