Badge disappears for an app after an hour of no usage?
My understanding of iOS is that apps in the background will be “killed” if the OS runs into memory pressure.  Could it be that after that hour (is it exactly an hour or is the time random), the app gets killed, and the badge goes away?

You can test this by ending the app yourself.  With your phone unlocked, double click the home button.  You’ll see the last used apps at the very bottom of your phone.  Hold it for a minute and it’ll start wiggling.  Press the (-) sign and if your badge goes away, you may have found your problem.

Hope that helps.