getTransactionMessages to extract the raw typed data messages from a prepared transaction. This gives you full control over the signing process.
Custom signing is useful when you need to implement custom signing flows (e.g. sign async with each owner, use a custom signing method, etc).