Got it! From my experience in all the projects I've been part of, we configure a 'System' swim lane with "run as designer" in that lane we would have write to db nodes, queries, or any other database related operations. When deploying to higher environments, always use compare and deploy, or deploy using a service account that will never be deactivated. This ensures that in higher environments your process models will continue to run smoothly. In your dev environment, all you would need to do is republish that process model, and things should return to working order.
The issue with "run as initiator" is that it doesn't take into account if assignment changes, also if the particular user currently assigned the task gets deactivated it can break the process.
Now, I know there are different schools of thought on this, but what I described above is what I've observed through my experience.