At least in my industry all the application layer gets done in Simulink. I prefer working with code. I find working with Simulink frustrating, you can't diff properly, simple things are hidden in hard to find configurations. It just doesn't work well with how I like to work.
Three other option is going back to firmware, which I did in my previous job, but I don't want to write more firmware drivers. It's just not exciting.
Additionally I'd also like to do more creative work, I find data science sounds very exciting and I could probably bring a lot of software skills to the team
But convincing the industry to go another path is probably harder than switching fields.
Please don't fall for the "sexiest job of the 21st century" adline.The wife works as a sw dev on a speech rec team(one of the popular ones) and she works with P.hD "Data Scientists" which are looking at getting in to dev. If you apply the pareto rule, "Data science" is 80% Cleaning and 20% ML. Hardcore ML research is totally different which requires atleast a MS with ML focus and pedigree plays a huge part. Here is a thought. Why don't you try rewriting stuff you did with Simulink in Python. My man, Downey got you covered https://github.com/AllenDowney/ModSimPy. I would recommend that you start with Think Python before tackling this book.