Craft Commerce: where to modify data sent to gateway (need to send customer data)?
Ok so it works pretty much how the documentation would lead you to think.  

This is for Commerce V1 but apart from hooking up to the event, it should be much the same for V2.

public function commerce_modifyGatewayRequestData($data,$type,$transaction)
{

        // Dump the data to see what is there...you can do what you like to $data and then you return it at the end...
        BusinessLogicPlugin::log("commerce_modifyGatewayRequestData - UNMODIFIED DATA"); 
        BusinessLogicPlugin::log("data");
        BusinessLogicPlugin::log($data);
        BusinessLogicPlugin::log("type");
        BusinessLogicPlugin::log($type);
        BusinessLogicPlugin::log("transaction");
        BusinessLogicPlugin::log($transaction);
    }

    # Example...
    # TRUNCATE any over-sized data eWay might not like....
    # Data limits come from here: https://eway.io/api-v3/#direct-connection

    if(isset($data['Customer']['FirstName']))
        $data['Customer']['FirstName'] = substr($data['Customer']['FirstName'], 0, 49);

    ...etc

        // Dump the modified data for checking if you need to...

        BusinessLogicPlugin::log("commerce_modifyGatewayRequestData - MODIFIED DATA"); 
        BusinessLogicPlugin::log("data");

    // Now actually return the modified data...
    return $data
}