When one schedules a test list and the tests execute with the rerun failed tests option, there is only a limited number of things that can happen.
1) a test may pass.
2) a test may fail once but pass the second time.
3) a test may fail twice.
4) a test may not run.
My suggestion is that, if these are the four types of result, report only this.
When you say this:
Run Summary: 25 of 25 test(s) run; 22 passed, 3 failed, 0 not run.
there is ambiguity. It is not clear what happened. It could instead say:
Run Summary: (#) test(s) run, (#) passed, (#) failed but then passed, (#) failed twice, (#) not run.
If the summary is in the second form, there is no ambiguity.