Is this a good strategy for importing a large amount of data and decomposing as an ETL?
If you are confident in the integrity of the data being imported, it may be a good idea to disable all the constraints to your database before beginning your inserts and then re-enabling them after the fact. 

See this helpful stack overflow answer from awhile back: Can foreign key constraints be temporarily disabled using T-SQL?

This will save you the head ache of having to worry about layering the inserts in order to respect the existing constraints of the database you are loading into.  

In terms of the actual inserts themselves, I'd be on the side of not using cursors.  Not only is the process slow but they take up a large amount off memory and create db locks.  If you are cursor-ing through a very large amount of rows you also run the risk of very quickly escalating the size of the database logs.  If the server is only an average one then, space may eventually be a concern.  Try to consider a more set based approach when doing the additional inserts needed for your process.  

example, if you can do this:

insert into t1 (col1)
SELECT col1 FROM t2


instead of this:

...
insert into t1 (col1) values ('foo');
insert into t1 (col1) values ('bar');
insert into t1 (col1 values 
...