John is a 100% perfectly good solid name and I think Johnny is great for a NN.
While John is not very exciting neither is Benjamin (don't get me wrong I love both names they are just very traditional).
What about the Johnathan? and you could use Johnny or Nathan for the NN or Joshua is similar... with the NN Josh
Ben & Josh
Ben & John
Ben & Johnny
Benny & Nathan
I do love the sound of John Francis Matthew C*****