I am so sorry for your son’s lack of sleep. My son has similar issues.
He goes down anywhere from 7:30 to 9:30pm and then on a bad night will be up between 2:30-5:30am. Sometimes he goes back down and sometimes he’s up for the day.
Has your dr suggested Trazadone? This would help with anxiety and would help him sleep through the night.