Programatically creating a user not appearing in Users index table
For anyone's future benefit - this happens due to the fact I'm adding the user in the sproutForms.saveEntry hook. That happens after it messes around with the fieldContext and contentTable options for the Entry. As such, the user is getting saved to the wrong context, so it won't appear...

A quick workaround for this is to move the following lines in SproutForms_EntriesService.php:133-135 to lines 120. This resets the field context back before the hook is called.

if ($transaction !== null)
{
    $transaction-&gt;commit();

    SproutFormsPlugin::log('Transaction committed');
}

// Reset our field context and content table to what they were previously
craft()-&gt;content-&gt;fieldContext = $oldFieldContext;
craft()-&gt;content-&gt;contentTable = $oldContentTable;

Craft::import('plugins.sproutforms.events.SproutForms_OnSaveEntryEvent');

$event = new SproutForms_OnSaveEntryEvent(
    $this, array(
        'entry'      =&gt; $entry,
        'isNewEntry' =&gt; $isNewEntry,
        'event'      =&gt; 'saveEntry',
        'entity'     =&gt; $entry,
    )
);

craft()-&gt;sproutForms-&gt;onSaveEntry($event);