i think, although this isnt nearly as simple to implement as your original suggestion, i think it would work
you would have to make two separate objects
the passthrough or antisolid
and another object that is an outline of its shape
then you can say,
-character is overlapping antisolid
-is not overlapping antisolidborder
that should work