Performance issues on a MySQL database with 150 million rows
INSERTing one row at a time can be sped up by gathering 100 rows and inserting them in a single batch:  INSERT INTO t (a,b,c) VALUES (1,2,3), (11,22,33), ...  This may speed up things by a factor of 10.
Check for errors after each batch.  If the batch fails, write it to a file for fixing and re-importing.  (This should improve the error-handling pass.)
Assuming the data is only "new" data, it should be easy to summarize the data for each day and write this to a new table.  This may speed up fetching a years's data for graphing by 10x.
The daily 200-400 files might be handled by multiple processes.  Suggest not breaking it into more processes than you have CPUs.


Putting all those together might shrink the elapsed time from hours to minutes.

If you would like to discuss things further, please provide SHOW CREATE TABLE, and maybe some more details on the data and its processing.  What's the value of innodb_buffer_pool_size?