We need to refactor our run-time optimization to handle reshaping properly.
At now, optimized plan in run-time just substitute the original plan in BatchScheduler.
This works fine if the shape of the plan is preserved.
However, if there is some reshaping phase in optimization, the block and task states have to be updated (and initialized if needed).
Also, we need to prevent the reshaping and property changing for already executed plan.