Actually, nevermind, found the bug. Initially, my main script was called 'main.ms' but once I packaged it I renamed it to 'startup.ms' but my restart function still called `run "main"`.
Makes sense! A common pattern is to leave your main script as 'main.ms', but then to make it boot right into your game, add a new startup script that simply does `run "main"`.