Hi John
The main difference is that one uses a CommandBased approach in the underlying layer to communicate back and forth with the knowledge session and the other one uses a simple client.
Because when you configure persistence, the persistence layer is using a CommandBased approach to encapsulate transactions, the CommandBaseWSHumanTaskHandler is required if you have persistent sessions.
Cheers