Are you defining this timer script in a leaf project or an inherited project? How are you determining it runs or doesn't run? Can you get a thread dump from the Gateway while it's supposed to be running and upload it here?
This project inherits from several other projects. Not sure what that would be defined as.
In my basic troubleshooting script, I am using logging to determine if it is running.
The real script that is not running modifies a database table, so I expect to see changes.
I should also mention that I can run this script manually from the script console and it works fine.
Do you need the entire Diagnostic bundle or one of the files inside it?
If you set the logger "Scripting.TimerScriptManager" to TRACE level and then make an arbitrary change and save the project, there might be something useful in the logs after that.
I turned on trace for Scripting.TimerScriptManager, but I see no entries for it.
I also enabled trace for Scripting.ScriptManager.Project, and it does show entries