I agree re Sonny, it's not really a name but a diminutive nickname. I think the same about Junior - it's not saying "This is a person and this is his own name" but rather "This is the child of his parents and his name will always reflect their superiority to him".
It would be like calling your DD 'Lassie' (granted, that would also have dog connections now), 'Gal' (With Gal Gadot, I presume it's a traditional Hebrew name and not just a lazy corruption of 'girl') or even just 'Daughtery'! We used to know somebody who had a relative whose actual given name was 'Baby' - appropriate (if highly unoriginal) when she was born, but can you imagine being a grown woman called Baby? Might as well have called her Sweetheart or Mummy's-Little-Snuggly-Wuggly.
Nash, Heath and Reid just sound like surnames to me.
Noah is nice enough, but sooo over-used now.
Of your choices, I'd go for Albert officially and then use Albie as his everyday short-form name. When he's older, he can keep Albie or switch to Al, Bert or Bertie for everyday use, or just use Albert in full. Old man/lady names are well and truly back in now, so it probably won't sound in any way odd in 2040 to have a 20yo Bert.