As jBPM 4 wouldn't store re-assignment history. We could get previous assignee information from history. So if you want to achieve this feature, you have to create a new table, and store these infos by yourself.
we had the requirement to provide an "audit trail" including reassignments. Just as you did, we implemented a custom history listener and recorded all events we are interested in.
At least in 4.2 we faced an issue here: The "old" assignee is not a member of the Reassign-Event! As we had several other requirements regarding reassignments, we implemented a custom reassign-CMD and a corresponding custom reassign-event. Sounds costly, but actually wasn't.