AActor::TakeDamage fails when passing "this" as the DamageCauser (this is a type of AActor)

Obviously, I’m too late here, but since I am…
Take<->Apply damage shouldn’t be ‘versus’. These two work well together. But since the question rises, I think taking COMPONENT-based design in play can answer some doubts. Composition over Inheritance is a useful pathern and in that case separating concerns of Damage-control can be passed on an Actor Component that reacts smartly on same Damage-data. Then ApplyDamage can Interface TakeDamage and one can make a good use of both.
Point is - instead of avoiding these Take and Apply Damage (since you could), rather make good use of them by giving data to Components and let Components take care of what to do with them.
I hope that makes sense and use to you