I feel some responsibility for your plight, because I think Rust should be able to interoperate with existing libraries that use standard non-local control flow constructs, and I've taken on a small part of the burden of trying to make that happen (more on that below) but sadly haven't been as diligent in making progress on that front as I hoped to be.
Are you aware of the existing discussions about Rust wrappers around mozjpeg? If not, the relevant part for your purposes is that this is undefined behavior, but in theory it should be possible to make it work reliably and in a well-defined way, and in many cases it should already work (and has been used successfully).
Here's an existing library with mozjpeg bindings: GitHub - kornelski/mozjpeg-sys: Rust bindings for mozjpeg
If you're interested, here is the discussion about making its behavior well-defined: Unwinding through FFI after Rust 1.33 - language design - Rust Internals
And here is my effort to make an RFC based on that discussion: https://github.com/rust-lang/rfcs/pull/2699