The bug was that we bailed out too early, when looking at a method
invocation, and we are deciding whether it might represent a valid
cancelation. There are some checks that are only valid if the invocation
has a real target. But there are other checks that should be made even
if the function has an implicit target.