What you listed are some of the basics. We have options for Rework in our workflows as I'm sure many other companies do. What you can end up with are many back and forth's between the Assignee and the Reviewer. Do you want to show each task in a list? That will get complicated.