Logic Synthesizer generates bad timings
I found the issue. It turns out removing the clock slew (set_clock_transition in the script) solved it, though I'm not exactly sure why. Feel free to explain if you can. Maybe this will help someone else in the future.