For a newbie, how would you explain the difference between a controller command and a task command? What are the purposes of each? What might be an example of using the two types of commands?
See this documentation: http://pic.dhe.ibm.com/infocenter/wchelp/v6r0m0/index.jsp?topic=%2Fcom.ibm.commerce.developer.doc%2Fconcepts%2Fcsdcommand_framework.htm
Basically a task is a step in the larger process. A controller generally calls the tasks necessary to complete the entire process. If you have two processes (command controllers) that need the same task, they each call the task and no need to replicate that task's behavior in each controller.
Think of making a peanut butter sandwich and making a ham sandwich as your two command controllers. Getting a plate, putting bread on plate, and place top bread slice on sandwich would be shared. Getting ham, or getting PB would be tasks only used in the appropriate command controller.