weston fails to start if it tries to switch active planes between crtcs
Linux kernel has drm_atomic.c::plane_switching_crtc() which prevents switching active planes from one crtc to another. This case can be hit with two displays when starting weston, if weston decides to pick a plane that's active on crtc2 and uses it on crtc1. The result is "atomic: couldn't commit new state: No such file or directory", and black screens, as the atomic commit fails.
I can see this with omapdrm driver, and I first suspected omapdrm, but after studying this a bit it looks like a more generic issue. Also, this is obviously a missing feature in the kernel, but I don't think the kernel has ever supported switching active planes, at least properly.
I think the currently working way to set things up is to first disable everything, and then activate the setup you want.