> My current thinking is that a good way out of this is to add an app.terminate() that terminates everything forcibly, rather than clearly, and thus doesn't requite a callback.

Good idea, let's do that.