@sudosaurus Sorry for the delay in getting back to you. I had a play with different fields (Hyperlink, Multiline Text [Plain Text], Multiline Text [Rich Text], etc.) and found that you only need to cater for the Rich Text fields.
The way you had your flow structured; it would have created a separate file for each iteration since Create file is within your Apply to each.
For this example, I'm using the following list.

See full flow below. I'll go into each of the actions.

Get items retrieves all the list items.

Initialize variable creates a variable called data of type Array. This will eventually contain our objects we want to use as final output.

Apply to each iterates over each of the items retrieved.

Html to text HTML and Html to text HTMLV2 remove the HTML formatting from our two Rich Text columns.

Append to array variable builds up an object with the fields we want in our CSV table and appends it to the data variable.
{
"Company": @{items('Apply_to_each')?['Title']},
"Account Manager": @{items('Apply_to_each')?['AccountManager']},
"URL": @{items('Apply_to_each')?['URL']},
"HTML": @{body('Html_to_text_HTML')},
"HTMLV2": @{body('Html_to_text_HTMLV2')}
}

After the Apply to each we use Create CSV table using the data array as input.

Create file uses the output from Create CSV table to create our CSV file.

After running the flow I'd get the following CSV file. I had to resize the rows/columns to see all the data.

----------------------------------------------------------------------
If I've answered your question, please mark the post as Solved.
If you like my response, please consider giving it a Thumbs Up.