So this is a challenge. In order to understand the challenge you need to understand how on the fly works. In 2010, which is what you are using, on-the-fly gets called in the process model by the ProcessModelPostResultListEntry callback. It gets invoked any time a step places a result in Locals.ResultList. The exception being engine callback sequences. Because of this it isn't being invoked inside of SequenceFilePostStepFailure, hence those steps don't show on the on-the-fly report.
Your best, and easiest, option is to put those steps in the cleanup of your sequence. You can precondition them with Runstate.SequenceFailed. The only problem with that is you will not have access to the failing step reference like you do in the engine callback.
Another option is to write the data you want to a fileglobal and then have a step in cleanup that adds it to the report via additional result.