typealias Progress = @Sendable (_ completed: Int, _ total: Int) throws -> Continuation Never invoked concurrently, however many threads perform the work, so the handler needs no
synchronization of its own; an error it throws never unwinds into the engine, but stops the call
as .cancel would and is thrown once the call is final. It runs on whichever thread advanced the
work, hence @Sendable.