If the code doing the work is done in JavaScript - the only way it is ever doing to run is if you open and save the record as JavaScript runs on the client whereas a workflow runs on the server.
Options might be creating a custom application with the SDK that runs regularly and does the update, otherwise you could create a custom workflow activity and use your wait conditions or some of the other tricks to create a recurrence. Both of these would require knowledge of .NET programming.