I'm aware that if you naively add continuations to a language, the Church-Rosser property no longer holds. For example, suppose we have some variant of the STLC with basic arithmetic and integer types. Then, add $\text{letcont }u.e$ (which binds the current continuation to $u$ in $e$) and $\text{throw}_Y(e,e')$, which invokes continuation $e$ with argument $e'$. These would have typing rules:
$$ \frac{\Gamma,u:\lnot X\vdash e : X}{\Gamma \vdash \text{letcont }(u:\lnot X.e) : X} $$ and
$$ \frac{\Gamma \vdash e : \lnot X\qquad\Gamma\vdash e': X} {\Gamma \vdash \text{throw}_Y (e,e') : Y} $$
Then, you have expression $$ \text{letcont }(u:\lnot Int).(\text{throw}_{Int}(u, 2) + \text{throw}_{Int}(u,3)) $$ Of type $Int$. If we assume a a left-to-right evaluation order (in the $+$), then $\text{throw}_{Int}(u,2)$ is evaluated first, and so the entire expression evaluates to 2. However, if we evaluate right-to-left, then the opposite occurs, and we get 3.
So, my question is this: is is possible to design a language with both the Curch-Rosser property (evaluation order is irrelevant) and continuations.
Note: I'm not particularly bothered by what the final solution looks like (what type system, what semantics, using delimited continuations etc.). I'm mostly just interested in if it is doable at all. My gut tells me that using types to place constraints on the use of continuations might work (e.g. linear/affine types), but I'm not particularly familiar with those type systems & how they work.
Edit: added more detail to the question.