Insert Into table Exec SP with bad performance
INSERT...EXEC might prohibit parallelism, but I highly doubt that is the main issue here. The problem is that INSERT...EXEC works differently than INSERT...SELECT. When inserting the results of a query (i.e. a SELECT statement or OUTPUT clause) into a table, the results are streamed into the table. If you are watching the row_count and used_page_count from sys.dm_db_partition_stats, you will seem them increase immediately as the INSERT...SELECT starts.

But, when inserting the results of an EXEC (typically a Stored Procedure but could be Dynamic SQL), the sub-process / Stored Procedure needs to fully complete before anything is inserted into the table (yes, I just tested this). If you are watching the row_count and used_page_count from sys.dm_db_partition_stats, you will seem them stay at 0 (or whatever they started at) for a looooong time after the INSERT...EXEC starts. This is not a recipe for success when the Stored Procedure returns millions of rows as those results need to be stored somewhere prior to them being inserted into the table.