Each Node in the Network adds a list of peers it communicates with to exchange data.
When a transaction is sent to a node, it is passed on to the peers and this way broadcasted to the entire network of producers.
Eossharp doesn't contain the functionality to query the NET API and is not maintained anymore... you could just call the NET API endpoints yourself, see here https://developers.eos.io/manuals/eos/latest/nodeos/plugins/net_api_plugin/api-reference/index#operation/connections
Your method is right to find the answer of push_transaction by print logs,but the place is wrong.when we used command cleos push_transaction which call push_txn_func in cleos main.cpp,a better way to find this is:
1、find command in ../../cleos/main.cpp such as push_transaction
auto trx_result = call(push_txn_func, packed_transaction(trx, packed_transaction:...
In my experience, 5-10 peers should be enough for ensured connections. It's always a good idea to check the logs periodically to remove unreachable peers and add new peers accordingly. Network connection and disconnection does impact the sync speed.