I found the answer which i wasnt aware of. There is a MaxReconnectionDelay which is default at 5 sec.
What was happening is that since my delay was random + 5sec, it would just default ot 5 sec.
I have changed the max delay to 45 seconds now (yes very long) and my random reconnect delay is set to between 5 and 45 secs. This is now working!!