I always love to check synonyms, and it sounds like we should start saying “task faux pas”!
On a more serious note, I’m personally ok with the ambiguity, but I could see us renaming it as well. We could tighten up how we refer to these two notions of failure like we have with immutable/shared reference as well. For example we could say that task failure is the thing you can’t catch whereas failure is just “I couldn’t finish” and generally refers to an error case.
On the other hand, renaming may not be so bad. There would be a lot of documentation to update, but that’s not the end of the world. I like the recv_catch pairing with throw!, but I think that throw! invokes the notion of try/catch too much to use it. You’re also not really catching a throw! with recv_catch, you’re more preventing a throw! (in a sense).
One other option may be to call this a “task abort” with an abort! macro. The term abort brings with it “no, you cannot catch this” and we could refer to something like intrinsics::abort as a “process abort”