For domain joining, the method that works for me is from STEVE PARANKEWICH - Join Computer to Domain with Desired Computer Name and OU.
I add this to the very end of my task sequence as a powershell step under State Restore, allowing me to enable/disable the step as required. (ie, do not want to join domain - local computer). Then end off with a "restart computer".
$strUser=""
$strDomain=""
$strPass=ConvertTo-SecureString "" -AsPlainText -Force
$Credentials = New-Object System.Management.Automation.PsCredential $strUser, $strPass
$StrOu="OU=, DC="
Add-computer -DomainName $strDomain - Credential $Credentials
Hope that helps