Yes, I would recommend to use "Ext. Reference" field. I'm using it also in my scenario where we want to have referenc ID of opportunity in the sales order. In that case you will also have this ID available in ERP, because it is transfered via middleware.
About how to achive this. Yes, copy routine is the good approach. To set the value use the if_ex_crm_copy_badi~sales method and fill the value in cs_sales_badi-po_number_sold