This question is somewhat subjective...
"i tend to assume that ready made operators like Equals would go
  through more processing actions."
" when and why would you choose ! over Equals , And both over
  'traditional' == "
the Equals method as part of an instance of an object is used to check for equality of that instance against another, whilst the == and != operators are static and are therefore unbound from any object instance. Instead these are like a special static method that accepts two arguments (of usually the same type) and compares them.
Consider the following example:
public class CustomObject
{
    int someValue, anotherValue;    
    public bool Equals(CustomObject obj)
    {
        return (this.someValue == obj.someValue && this.anotherValue == obj.anotherValue);
    }
    public static bool operator ==(CustomObject a, CustomObject b)
    {
        return a.Equals(b);
    }
    public static bool operator !=(CustomObject a, CustomObject b)
    {
        return !(a == b);
    }
}
In this example, the Equals method is used to produce a result of the comparison of values in the CustomObject against another instance of the same type. The == operator for CustomObject simply calls Equals on one of the parameter objects and performs an equality check against the other. The != operator simply negates the == and produces the opposite result. Therefore, == and != do not have much performance overhead over Equals, because they both call that method anyway.
Best practices:
if a condition is boolean by nature there is no need to use Equals, != or ==, but you should use ! to negate a boolean condition.
For example:
if(IsPostBack) // this is good
if(IsPostBack == true) // this is unnecessary
if(!IsPostBack) // this is good
if(IsPostBack == false) // this is unnecessary
If a condition is not boolean by nature, or you are comparing two boolean values, or you are comparing an enumeration, or other value type then use of != or == is acceptable.
For example:
if(a == b) // this is good
if(a != b) // this is good
If a condition is not boolean by nature and the objects you are comparing do not have the == or != operators implemented, then using Equals is acceptable. Note, using != and == are prohibited with generics since it is not known at compile time that != or == are implemented on the objects represented by the generic objects type parameters.
For example:
if(a.Equals(b)) //this is good
if(!a.Equals(b)) // this is good
if(a.Equals(b) == true) // this is unnecessary