Is there a difference between 非常 and 很?
They are different, of course.

非常 literally means 'not common/uncommon', thus extraordinary ("out of ordinary, un-ordinary", just like 非常), exceptional, very, etc.  

很 means 'very, quite'. 

Usually, 非常 is stronger in the meaning than the simple 很. Just like you wrote, 非常好 is above 很好 in degree. One of the reasons perhaps is that 很 does not always mean very is that sometimes it is only inserted before an adjective to make it "predicate-capable". In such cases 很好 simply means "good", not "very good". This has just just been discussed a day ago. Check this question for details. 

Also, there is a related question about answering to 你好吗？ with 很好。