Thanks for the project, that made this easy to pin down. This is a genuine bug and I've confirmed the cause.
When you choose File > Quit, the app's windows close, but the app's process deadlocks partway through its own shutdown and never actually exits. The IDE waits for the real process to end before it clears the Running state, so Studio sits there showing Running even though the app looks like it has quit. Pressing Stop kills the stuck process and clears the state, so that's the workaround for now.
The deadlock is a timing race between the quit sequence and the runtime winding itself down, which is why you've only seen it intermittently in other projects. Your project's ListBox header painting keeps the runtime busy at exactly the wrong moment, so it lands in the bad window every time. It affects the in-window menu bar that Linux and Windows use; on macOS the quit path is different and exits cleanly.
I've logged the fix here: https://feedback.objo.dev/bug/1716