I have a long workflow that takes about an hour each time I run it. It works fine and does what I need it to do. But I need it to run 8 times automatically with a different parameter from a collection each time. Right now, when it completes, I just run it again manually and select a Startup variable value. Does anyone have a best practice for how to do this without a State Machine?
It's hard to give an advice with the current information.
I could think of a site workflow that calls your workflow 8 times with a different start parameter which could come from a collection variable. Still I don't know if the basic approach is good at all. Nintex workflows aren't intentionally meant to do batch mass data processing. They're designed to support user driven processes. In worst case you consume all your web front ends computing resources for 8 hours while your workflow is running.
If you do so I'd advice to always have safe looping enabled in central administration or at least watch your web front ends health status while your workflows are running.