New user validates without confirming email
Since you're bypassing Craft's own UsersController->actionSaveUser(), you'll need to replicate a bit more of its functionality in order for it to work like you're wanting.

First you'll want to make sure that "Require Email Verification" is checked under Settings-&gt;Users-&gt;Settings in the control panel.

Then your UserModel will also need to set a few more things:

$user-&gt;unverifiedEmail = $email;
$user-&gt;pending = true;


Completely untested, but that should do it.

I highly recommend looking over Craft's default actionSaveUser implementation as there are many permissions/security guards in place for public registration that you should probably consider as well.