Sort of worked around this by installing solaar in a distrobox, which is able to accurately report battery percentage without restarting the app. The flatpak version is older than what's in Fedora's repos, so I'm not sure if it's just a bug in version < 1.1.13