Is he getting enough sleep during the day? What time does he sleep until during the day? Could he be overtired and stimulated before bed with the bath, stories, singing etc? Is there something in his diet that could be upsetting his belly by the end of the day? Have you tried playing music in the room for him (something classical is usally good)?
I am sure he gets enough sleep during the day, he sleeps well in the day. Usually goes to bed at mid-day and then sleeps anything from 1.5 - 3 hours but usually 2 hours at the moment. If he wakes up & is grumpy & dozey I resettle (not often); usually he wakes up happy & chatting with bright eyes so I know he is ready to get up. At night he (mostly) sleeps well & sleeps for about 11 hours.

He could be overstimulated as he is very easily stimulated (i.e. he doesn't like massage; it seems to much for him & music even classical music makes him dance). The singing is just Twinkle Twinkle Little Star with a cuddle & rock/pat before bed, he usually rests his head & closes his eyes while I am singing so I think this is okay. The bath..well, I am sure it stimulates him but he needs one & the stories afterwards are nice & relaxing (even though now he has words he tries to impress me with them at bedtime stories).

I don't think it is diet because he was the same as a baby when he was fully bf. I have a pretty simple diet with lots of fruit & veg (vegetarian) & no or very little dairy as I am intollerant. I love chilli which he would have tasted in my milk but we don't feed it to him now & he only feeds once a day in the morning so not sure this would keep him awake besides I don't get chilli often any more since we share most meals (although DS eats meat & dairy but lots of fruit & veg too).

As I said before music wouldn't help as when he hears music he just starts dancing - especially classical music - he kicks his legs & waves his arms & rocks his head.
Lots to think about.