Firstly, when he wakes up, what happens?
You need to be compassionate, but equally you need to be firm.
Does he wake up and come to your room? Rather than going to sleep in his room, I would agree 10 minutes in your bed to cuddle and calm down, but then make sure he understand that after that 15 minutes he is going back to bed.
So take the time to explain this will be happening if he wakes during the night, in a very consistent way. Explain during the daytime. Reaffirm at bedtime, reaffirm when he arrives in your bed. Then be consistent in seeing it through.
You have already dealt with the darkness issue (nothing to worry about is your child doesn't like the dark, I would freely allow lights on at night if it helps). I would next try giving him a special toy that represents safety and security. Give the toy a backstory - say it was your when you were little and is very, very special and is the best possible thing for cuddling in the night, lending you bravery. Make a big deal of it.
Then when he wakes, give him 10 minutes of actively calming him down in bed. Don't just let him get in your bed and ignore him as you go back to sleep. Talk to him that he will be going back to bed after 10 mins. Maybe do time checks at 5 mins left, 3 mins left and so on. Then take him back.
Upon taking him back, he will benefit from seeing you are firm and uncompromising (while also caring and compassionate). So give no indication that there is any wriggle room. Take him back, tuck him in, explain that he has calmed down while in your bed and now he must go back to sleep in his. Encourage cuddling the special toy. Give him a kiss and go.
If he gets upset, reassure him that you'' wait outside his room to keep him safe, but that he must go back to sleep in his room. So close his door and after a few seconds tell him (through the door) I'm still here. If he still wont settle open the door and poke your head in - "Im still here keeping you safe, I will stay here while you need me, nan night" and close the door.
Keep on opening the door, reassuring him you're there to keep him safe and close the door. He's got to develop the trust that you are there keeping him safe. But do this with the door closed so that he learns that he can be safe in his bedroom, on his own, at night, without being scared. Once he's quiet, stay there for a good 10 minutes just to make sure then quietly go back to your bed.
Over time he should more quickly accept that he has to go back to bed, and more quickly settle once back in bed. So that you work towards the time when he can come into your bed if scared, but knows he will be taken back fairly quickly and that he'll still have to settle to sleep in his own bed.