So with some help from Andy Wingo (thanks Andy!) I figured out what to do. What happened is that when code in the resumed delimited continuation threw an error, it attempted to find the original catch's prompt, which had disappeared. Remember that I had a prompt in a prompt, so the outer prompt's catch had gone away. The trick was to put a catch around the inner prompt as well, repeating the same handlers given to the outer prompt.
Not sure how coherent that is, but this fixed it. Thanks, Andy!