> Either this comment is wrong 

Why? If driver is not loaded, and you call ip link set xxx up it is loaded and initialized

> or the sleep should go to  SetLinkUp .

no. I need to delay second action in this transaction (setting link followed by checking for carrier)