In answer to your first question about
... the ability to balance workload depending on a user's existing tasks...
There are three out of the box options for this:
- Least Busy - user or group with fewest tasks will be assigned the task
- Most Productive - user or group that has completed the most tasks (default is over the last 7 days but this can be changed)
- Round Robin - user or group is picked in turn
It's tricky to get to the dialog where this is set. Double click the human task -> click the Assignment tab -> double click the performer icon shown on the diagram -> (this is the tricky part that I never seem to remember how to do) the dialog box is scrollable so scroll down to the bottom -> click the "Auto assign task to a single" user or group -> click the one of the three assignment patterns I described above.