Is there a way to have the comments unpublished by default?
No.
Or is there a way to create an auto action that will unpublish the comments after creation?
Yes, you can use activity_onBeforeCreateStreamComment to modify the reference comment variable and change the published variable of the comment object. The trigger is as follows.
Code:
$_PLUGINS->trigger( 'activity_onBeforeCreateStreamComment', array( $stream, $source, &$row ) );
This means using a code action you can modify var3 by reference (you need to set this variable as a reference under Parameters). Example PHP as follows.
Code:
$variables['var3']->set( 'published', 0 );