You need to feed sp_executesql a single SQL string, and there is no need to split it up. Just make sure that you declare @SQLQuery as nvarchar(MAX) - that fits 2GB of data. Your strings are not that long, I hope!
One thing that can bite you is if you do:
DECLARE @sql nvarchar(MAX) = N'3500 long string' + @shortstring+ N'Another 3500 long string'
Because all strings in the expression are below the 4000 limit, the data type of the expression is nvarchar(4000), so there will be truncation. The remedy is do something like this:
DECLARE @sql nvarchar(MAX) = cast(N'' AS nvarchar(MAX)) + N'3500 long string' + @shortstring+ N'Another 3500 long string'
Now all strings will be converted to nvarchar(MAX), and the data type of the expression will be nvarchar(MAX), and there will be no truncation.