PoC writing tip: signatures as byte arrays use r, s, v order, not v, r, s like vm.sign() & ecrecover().
This may be confusing, but it aligns with ECDSA's r, s math.
v comes last as it's extra data, ensuring correct r, s interpretation when the signature is sent as bytes.