If we were defining exceptions de novo, this would be a very useful distinction, more or less comparable to the Java distinction between Exception and Error. However, making it now is not only backwards incompatible with R7RS-small, but is a big non-portable change in an area where implementers have historically pushed back on any attempt at systematization.
Therefore, I am going to go with (exception->either pred thunk), which invokes thunk and returns its values wrapped in a Right, unless an exception satisfying pred occurs, in which case the exception is wrapped in a Left and returned.
Completely untested implementation:
(define (exception->either pred thunk)
(with-exception-handler
(lambda (e)
(if (pred e) (left e) (raise-continuably e)))
(lambda () (call-with-values thunk right))))