Deleting one side of a self-intersection? (Intersect Knife then Edge Split not working)

I have a mesh whose surface folds over itself, as seen in this example: (or in this screenshot, though it’s a bit hard to make sense of in 2D: ) What I want is to delete the portion below the intersection, leaving just what would be visible from above (i.e. to make it manifold, assuming this example mesh’s outer edge actually connected to something larger; I’ve left it isolated in this example to make it easier to see). I’ve seen instructions on how to approach this, but they aren’t working in this case, possibly because the intersection is a line rather than a loop?

I’ve gotten partway there by doing this:

  1. Edit mode, face select mode, select all
  2. Mesh > Faces > Intersect (Knife) > Source: self-intersect, Mode: all

At this point, the faces are now correctly split so that in theory, I can just click all the faces on one side and delete them—but the model in my actual file is much too large, and has this type of intersection in too many places, to actually do it manually.

My next thought was to do this:

  1. Edge select mode
  2. Select > Select all by trait > Non-manifold (then unselect the outer edge, in this example…)
  3. Mesh > Edges > Edge Split
  4. Select an edge in the lower portion
  5. press L

At that point, I would EXPECT that only the faces of the lower portion would become selected, since the edge split should have made them not ‘touching’ the faces of the upper portion? But instead, everything gets selected, as though the edge split did nothing. The same thing happens if I try to ‘separate by loose parts’—it’s still considered all one part.

So my question is either:

  1. Why is edge split not working in this case?
  2. Is there some other way of detecting and/or removing the ‘hidden’ portion of a self-intersecting mesh that would work in this case?

One follow-up: I’ve noticed that the problem is probably in the self-intersect knife, not in the edge split—the intersect left some faces not cut, right at both ends of the overlap. I’ll report that as a bug, but in the meantime, I’d still like any other suggestions as to how to resolve this kind of situation.