either MS tries to find the hPLMN or it doesn’t:
1. if it is in foreign vPLMN, it’s another country, so it doesn’t try to search for hPLMN.
2. if it is in local vPLMN, it’s the same country, so it tries to search.
the fact that the hPLMN is in radio range doesn’t change this “stupid” MS behaviour. this is clearly a 3GPP limitation.