I have a idea for the builders. Lets say you have 4 builders, and they have a to do list that can tell them what to upgrade next. You would go onto this "to do list" and choose a building or buildings that they have to do next. Lets say all 4 builders are busy. One has 2 hour job, one has a 4 hour job, one has a 6 hour job, and one has a 8 hour job. As the builders finish their jobs, they go on to the next building to upgrade on the "to do list".
The payment for the buildings would be done like this, when a builder goes onto the next job the payment for the buildings will happen. But lets say a builder needs 600,000 gold for the next upgrade, someone attacks you and now you don't have enough for the upgrade. The builder would stop and go to his hut. When this happens it would alert you that there's not enough money, and the "to do list" would stop. This would be very helpful to get upgrades done, even when your not on.