First some background. This issue has the exact same symptoms aswhich was never really solved, but below I have the cause and the solution.
The field panels_layout.name is a varchar(255) yet panels_display.layout is a varchar(32). The latter needs enough room to prefix the layout name with a word like "flexible". Therefore the former needs to be restricted to 32 minus max_length_of_prefix or perhaps the latter could just reference the layout id rather than the layout name?
I am marking this as critical because it can corrupt existing pages. After experiencing this issue I deleted my page and tried to recreate it, but then ran in to duplicate entry issues because some of the old stuff wasn't removed, most likely because it was looking for the truncated machine name.