Checking with if (OtherActor == this) //also failed always , logically it should not get failed because this is also defining the current actor which is overlapping is character.
the nature of blueprints is many things are goin on behind the scenes, in your bp script that
== is not using the straight if(…){…} , I think some dynamic casting is happenin behind the scene to compare actor and character , create a native code of your script and check if it will help you to see how and when the casting is occured.
or try to store the result in a bool comparing actor and character on dynamic casting and then check that bool in under if statement…