Interestingly Wat implements a callstack in a userland VM, to implement it's delimited continuations. Ergonomically it would be good to implement algebraic effects on top, but the basis is there, along with demos of exception handling, branching, fibres etc.
https://github.com/manuel/wat-js
Obviously with forths the callstack is already in userland to implement these things, might be a bit brain-bending in forth.
It's powerful, but is anyone actually using it other than in hobby projects that is, in any language?
By "it" do you mean delimited continuations? If so, my understanding is that they are the standard mode of interruption in Racket — all error-raising/handling and other continuation forms (call/cc, etc) are implemented in terms of delimited continuations because they're a more general abstraction than the older primitives. You can read about Racket's continuation model and where they're used in §10.4 of the Racket Reference [1].
Java's new green threads are built on delimited continuations.
Project page says it runs on top of the kernel. What is the intended use case? Embedded?