When overload resolution is performed against the two overloads of the member function, they are considered to have an additional parameter, called the implicit object parameter. The argument to this parameter is the object expression (here *m).
For a const-qualified member function, since it should be callable also with a const-qualified object expression, the implicit object parameter will have type const ToolClass&.
If the function is not const-qualified, then it will be ToolClass& instead, since it shouldn't be callable on a const glvalue.
So, essentially the two function's parameter lists against which overload resolution is performed are
TestFunc(ToolClass&, const InArgClass& Name)
TestFunc(const ToolClass&, int Name)
and the arguments are a non-const ToolClass lvalue (*m) and an int prvalue (100).
Both functions are viable: Both ToolClass& and const ToolClass& can bind directly to a non-const lvalue of type ToolClass. 100 can be passed in the second overload without conversion and in the first overload with a user-defined conversion to InArgClass using its converting (non-explicit) constructor and the const lvalue reference parameter can bind to the resulting temporary. That constructor is private, so not accessible in the context, but overload resolution does not consider accessibility. It would be checked later if that overload were to be chosen.
The conversion from int to InArgClass is clearly worse than the identity conversion from int to int. So the second overload would be preferred based on the second argument/parameter pair.
However, for the first argument, binding to a const lvalue reference is considered better than binding to a non-const lvalue reference. So based on the first argument/parameter pair, the first overload should be preferred.
If two argument/parameter pairs disagree on being a better overload in this way, then neither function is considered better than the other and since there is no third overload to consider, the whole overload resolution will end up ambiguous.
Without const on the second overload, the first parameter/argument pair will not make either overload better than the other, but since the second pair is a better match for the second overload, the second overload will be chosen in the end.