If possible, it should do something along the following lines;
- Check how many free inventory spots available = (x)
- Request (x) planks from butler
- Take (x) planks from butler
- Before starting construction, request (x) planks from butler again
- Build whatever item was requested
- Take (x) planks from butler
- Request (x) planks from butler
- Build whatever item was requested
This will minimise the down time for the butler fetching planks while you are building the item.