Not everyone likes the convention of making everything a RuntimeException!
Rendering exceptions using templets does seem to be the way to go, especially since it provides a solution in principle to the problem of supporting different locales/markup languages.
The mechanism for attaching contextual information to exceptions as they find their way up the stack has some disadvantages: we are wrapping the original exception in a "more general one" as it comes past. Although this does provide an obvious place to attach context info, it does make it harder to net the original exception in a catch clause.
It might be better to attach context info explicitly in a Stack of ExceptionContexts. These could have their own templets.