Do you mean as shown doesn’t work, but removing last 2 rotate-slow & rotate allows it to work?
Is button press supposed to interrupt current process & restart everything? Because the way you have it wired, the MUX will be locked, so the new cycle is not going to be able to start. I’m assuming a request to lock a MUX will fail if there is already a lock; if it will queue the request and make it when the lock is released, your program is going to be very unpredictable (you will have multiple lock requests queued up & they will be granted at random).
If you want to interrupt the current cycle when button is pressed, then button-PRS should link to mutex-break-DO to break the current cycle so a new one can be started. Since you never use the 2nd mutex on the right, there is no reason for it to be there.
None of this helps you with your hangs during download, though. If it works with a smaller program, but breaks when you add more nodes, I would assume it is a resource issue. If it were an Arduino resource issue, the compiler should catch that and give an error, but there are probably some instances it can’t catch (like a loop causing a stack over-flow, but that would cause a run-time problem, not an upload problem). Sorry I’m not providing much help with this part of your problem…