Is the halting problem solvable for NPDAs?

After the total silence in response to my last question, I am rethinking my assumptions. DPDAs are, of course, solvable, and I believe that their loops can be found in the manner I described in my prior question:

  1. arrive at the same state as you were in previously
  2. with the same top symbol as you had last time
  3. without consuming anything on the stack, and
  4. without consuming any input.

But is my last question actually unanswerable because we cannot, in fact, determine whether a NPDA will halt? Is the halting problem even solvable for NPDAs?

Detecting loops in NPDAs

I’m aware that the halting problem is solvable for PDAs, but I have gotten myself confused about how to actually do it. I used to think that you could detect an infinite loop by meeting these four conditions:

  1. arrive at the same state as you were in previously
  2. with the same top symbol as you had last time
  3. without consuming anything on the stack, and
  4. without consuming any input.

…but this appears to actually be untrue for nondeterministic PDAs. Consider this machine:

enter image description here

It accepts the empty string, but it does so by breaking my infinite-loop finding model.

The following version even contains infinite paths to accepting the empty string:

enter image description here

I am coding a NPDA simulator in scheme, and while I am happy to accept that the halting problem is solvable for a PDA, I am clearly wrong about how it is accomplished. How can it actually be done?