Task Reminder vs. Complete Workflow Task vs. Tasks

I am looking for some input from the community on the following question - Task Reminder vs. Complete Workflow Task vs. Tasks in general, what would you use and what have you used?

First let me give you my scenario. I have a request to create a way using SharePoint to track the yearly acknowledgement of certain documents that end users have to read and confirm that they have read. We have decided on the following:

1. A custom list will be used to hold the needed information to do this. The fields in this list are listed below:

Title - Single Line of Text - Holds the name of the document to be reviewed

User Name - Person/Group Field - User name is selected so that a email can be sent to the end user

Email Sent - Yes/No field

Due Date - Date/Time field - The date that the end user must complete the task

Date Email Sent - Date/Time Field - Records the date the email was sent to the end user

Date Read - Date/Time field - The user has to pick the date that they reviewed the document

Confirm Name - Single Line of Text - The user has to type their name in this field, used as another control to make sure that they have completed the task

I Confirm Reading the Document - Yes/No field - Checkbox to confirm that they have read the document

Document Links - Multi Line Text field - Contains the links to the documents that people need to review

I have created what I believe to be a simple workflow to handle sending out email notifications to the end user to complete the task at hand of reviewing the documents. A screen capture of the workflow is below:

I realized that I need some way to remind people to complete the task of reading and acknowledging the document(s) that have been assigned to them. The requirements for this portion are the following:

1. I will need to send a reminder to the end user, once a day for 30 days until they complete the task of reviewing the document.

2. If after 30 days the end user has not reviewed the document I need to escalate this to our compliance officer via an email.

I have looked at Assign To Do Task, Assign Flexi Task and Task Reminder.

Assign Flexi Task - Is there a way to use Assign Flexi Task with only one option for the user to select instead of two? As an example Assign Flexi Task has Approve or Reject. I only want Approve, is this possible?

Assign To Do Task - Is this the best task action to use when needing to send out reminders and escalations? What are some of the pros and cons of using this object?

Task Reminder - I do know that reminders can be sent out using Task Reminder, but what are the pros and cons of using this object?

The third piece of this plan is wanting to know what the best option would be for looping through the list to see if the task has been completed. What works better - For Each Loop or a regular Loop object?

I would be very interested in hearing from people as to what they have done and what solution worked the best for them.

Assign Flexi Task - Is there a way to use Assign Flexi Task with only one option for the user to select instead of two?

yes, you can have single outcome, if you choose 'Do not create branches' in advanced options

Assign To Do Task - Is this the best task action to use when needing to send out reminders and escalations?

you can configure reminders and escalation for assign flexi task just the same way.

I do not see any difference to assign flexi task in this regard.

What are some of the pros and cons of using this object?

in general the advantage of to do task might be that it allows to define task's specific response content type. but I think it's not your case in this scenario.

as a disadvantage might be that there are limited outcome options and that you can not customize (nintex) task form.

Task Reminder - I do know that reminders can be sent out using Task Reminder, but what are the pros and cons of using this object?

it's mainly for use with task actions that do not provide reminders on its own, eg, request review, or if you need some customized reminders (eg. irregular intervals, different people to remind for different reminder instance etc.)

in term of configuration,comparing to flexi task or to do task, there is no difference.

it's a bit problematic to use it with flexi task since flexi task do not make available action ID and you need to find it on your own.

The third piece of this plan is wanting to know what the best option would be for looping through the list to see if the task has been completed.

you typically first need to identify items that meets certain criteria (eg. not answered). this is typically done with query list action that returns collection(s) of item filed(s) you query for. to loop through collection there is definitely better for each loop action

Assign Flexi Task - Is there a way to use Assign Flexi Task with only one option for the user to select instead of two?

yes, you can have single outcome, if you choose 'Do not create branches' in advanced options

Assign To Do Task - Is this the best task action to use when needing to send out reminders and escalations?

you can configure reminders and escalation for assign flexi task just the same way.

I do not see any difference to assign flexi task in this regard.

What are some of the pros and cons of using this object?

in general the advantage of to do task might be that it allows to define task's specific response content type. but I think it's not your case in this scenario.

as a disadvantage might be that there are limited outcome options and that you can not customize (nintex) task form.

Task Reminder - I do know that reminders can be sent out using Task Reminder, but what are the pros and cons of using this object?

it's mainly for use with task actions that do not provide reminders on its own, eg, request review, or if you need some customized reminders (eg. irregular intervals, different people to remind for different reminder instance etc.)

in term of configuration,comparing to flexi task or to do task, there is no difference.

it's a bit problematic to use it with flexi task since flexi task do not make available action ID and you need to find it on your own.

The third piece of this plan is wanting to know what the best option would be for looping through the list to see if the task has been completed.

you typically first need to identify items that meets certain criteria (eg. not answered). this is typically done with query list action that returns collection(s) of item filed(s) you query for. to loop through collection there is definitely better for each loop action