There is already some functionality to set a custom screensaver message. Like you said you could extend that with a few optional variables.
See
https://github.com/koreader/koreader...nsaver.lua#L68 for an example of how that works.
Sticking "(93% read)" in the default message should be fine too.
Basically you make your changes and open a PR to get them included in the code, or if you want to discuss it before opening a PR you can post diffs in an issue or here on the forum.