it only seems to change anything on the app display when a condition changes on the car. Just hitting "Refresh" doesn't do anything, on its own. If it sits in my driveway for a week, and I hit "Refresh", it doesn't.
That is correct and seems to be how it was designed to work. The car communicates its current status to Honda via the cellular network whenever any of the following events occurs:
Car is turned off
Charger is plugged in
Charging starts
Charging ends
During charging when SOC reaches 15% milestones (25, 40, 55, 70, 85, 100)
Remote climate starts
Remote climate ends
Charge timer schedule is set
This communication of data to Honda has nothing to do with the app or our phones, i.e. your phone can be powered off, or you can be a hundred miles from your car, and the car will still communicate current status to Honda if one of these events occurs, as long as the car is within cellular range. By the way whenever the car is turned off it displays the car's cellular signal strength on the instrument panel on the same screen that it shows any timer schedules. It's where it says "TCU" which is the telematics control unit.
After the car communicates data to Honda, this data is then available via the HondaLink app which gets it from Honda through regular Internet. If the app was already on when one of these events occurs, it may not refresh the new data in the app immediately. Easiest way to check how current the data is is by looking at the "Last Updated" time at the top of the screen. If you just launched the app then whatever info is displayed is current, i.e. it's whatever was last reported by the car whenever that was. If the app is already running when one of the events occurs, you can speed up the refresh of the screen either by swiping down on the screen like with most apps, or by pressing the Refresh button that was added about a year ago, which does the same thing. If after refreshing the screen the Last Updated time does not change, then this means that the car has not reported any new data to Honda.
To get a data update from the car in between events, you have to trigger one of the above listed events. If however you don't want to start charging, or turn on climate, etc. one way to get an update is to set a timer schedule, whether you plan to use it or not. Since setting a timer schedule requires communication with the car, after setting the schedule the app will now have updated data from the car. You can then immediately disable the schedule.