The reason the tables were not being created was that external tables obviously weren't showing up on the schema_mysql_inspect() calls on the 'default' database. BUT I just added a patch to over atwhich is needed to get this working with migrate (and migrating content from external databases joined to internal ones IS working finally!).
If you read my synopsis at, the only way to take advantage of this mysql ability to join across databases in views is to change the db of the external table to 'default' and then name the external table using [ext_database].[ext_table] This patch basically just uses the new function tw_inspect_schema() from the tw patch above and checks to see if a table has a period in it. If it does, it extrapolates the actual database and table names from the 'hyphenated' external tablename in views ([ext_database].[ext_table]) and then is able to get the schema correctly since it's now acting like a proper table in an external database.
With this patch, the external + internal table views I had setup with tw module now work properly in migrate as well. So this should complete the cycle to using external and internal tables to generate views, and then using those views as the base for a content set.