Thanks for sharing, to see the concrete lock we would need a thread-dump, taken when the Designer is in this situation.
However, since the lock seems to be related to a design-time class "..engine.ui.debug.TargetManager" i think this could work flawlessly on a real productive engine.
So maybe you could live with a workaround: run the futures in sequence in Designe-time and only parallel on the engine.