how's his language? can he say "hug"? perhaps you can continue to hover closely and when you see him, step in and offer "Would you like to hug X?" (have him say "hug" if he can) and then get the friend's permission and enable a smooth hug.
it sounds like you're doing everything else you can.