Why is the battery level shown in 5% steps only?
Because that is all iOS gives to apps. System Status reads the battery level through the official iOS API, and since iOS 17 this value is rounded to the nearest 5%. Older iOS versions reported it with 1% precision. The coarser rounding was introduced by Apple, and according to Apple engineers it is the intended behavior — there is no other API that would provide a finer value:
https://developer.apple.com/forums/thread/732903
This is most likely a privacy measure: an exact battery level changing over time can be used to track a device across apps.
The 1% value you see in Control Center or under Settings → Battery comes from a low-level system interface that is not accessible to App Store apps. The app sandbox blocks the read, and the data requires an entitlement that Apple only grants to its own system components. This is the same interface that holds the charge cycle count and battery health, see the question above.
As a result, the percentage displayed by System Status changes only when the battery level crosses a 5% boundary and stays the same in between. It would be possible to guess the values between the steps, but that would just be fake precision, so the app shows the real value it gets from iOS instead.
As with battery health, I only use officially supported APIs in my apps. System Status will show finer values again as soon as Apple decides to provide them.