I'll answer as I did find some kind of workaround
Those steps allow me to work DX-style with Managed Package, Namespace and Person Account
1 Create scratch org WITHOUT Namespace, using flag -n, --nonamespace
sfdx force:org:create -f config/project-scratch-def.json -a ScratchNONameSpace -s -n
2 First thing is to pull Account.Business_Account, which works as expected
$ sfdx force:source:status -r
=== Source Status
STATE FULL NAME TYPE PROJECT PATH
Remote Add Account.Business_Account RecordType
$ sfdx force:source:pull
=== Pulled SourceSTATE FULL NAME TYPE PROJECT PATH
Add Account.Business_Account RecordType force-app/main/default/objects/Account/recordTypes/Business_Account.recordType-meta.xml
3 Create scratch org WITH Namespace
sfdx force:org:create -f config/project-scratch-def.json -a ScratchWithNameSpace -s
4 Check status, you'll see conflicts
$ sfdx force:source:status
=== Source Status
STATE FULL NAME TYPE PROJECT PATH
Local Add (Conflict) Account.Business_Account RecordType force-app/main/default/objects/Account/recordTypes/Business_Account.recordType-meta.xml
Remote Changed (Conflict) Account.Business_Account RecordType force-app/main/default/objects/Account/recordTypes/Business_Account.recordType-meta.xml
5 Push your code using flag -f, --forceoverwrite
$ sfdx force:source:push -f
=== Pushed Source
STATE FULL NAME TYPE PROJECT PATH
Add Account.Business_Account RecordType force-app/main/default/objects/Account/recordTypes/Business_Account.recordType-meta.xml
$ sfdx force:source:status
=== Source Status
No results found
After that you would be able to push/pull without issues.
You are not overlooking anything but you are not understanding few concepts on how authentication works between CLI and Salesforce.
The machine that creates the scratch can log into that using sfdx force:org:open .Since you never created the org from your local machine this wont show up .
Here is what you can do if you want to log into the scratch org .First reset the password or create another user in your scratch org that you have password with .
Then run the login command as below to authenticate and set alias once login
sfdx force:auth:web:login --setalias myScratchOrg
On successful auth set as default as below
sfdx force:config:set defaultusername=myScratchOrg
Now open it using sfdx force:org:open -u myScratchOrg
Best Answer
We do have an open bug with the conversion between the md and dx source format underneath the hood for EmailTemplate which I believe may be causing this problem. Can you confirm what OS you are running on (Win/Mac/Lin)?
If this failure is causing other changes to not be pulled properly, you should be able to add EmailTemplate to the .forceignore file to workaround it.
Also if the failure is with the conversion, then you should be able to retrieve it with force:mdapi:retrieve if you need to get it local (in md format).