While testing some other scenario I found calling CoprocessorEnvironment.bypass() fails if all trailing puts in a batch are bypassed that way. By extension a single bypassed put will also fail.
The problem is that the puts are removed from the batch in a way that does not align them with the result-status, and in addition the result is never marked as success.
A possible fix is to just mark bypassed puts as SUCCESS and filter them in the following logic.
(I also contemplated a new BYPASSED OperationStatusCode, but that turned out to be not necessary).