The first 2 don't work because the Condition on the rhs is interpreted as a condition.
The third one doesn't work because HoldPattern doesn't prevent the interpretation of Condition, merely evaluations.
The last one doesn't work because Verbatim means literally. So this also stops Blank[] from matching anything but a literal Blank[].
The following also works:
In[1]:= MatchQ[Hold[b /; c], Hold[_Condition]]
Out[1]= True