<= vs ==

when adding a stack, you can go past the level you need; when you are
not equal, it wouldn't terminate.
don't log 0 requests

the effort of avoiding this is the same as the safe handling provided by
this detection.
need to regnerate the promise list, after we decide how many we want.
only promise >0 items

otherwise just clear the promises.
exit once all needed items are promised.
Don't pass requestlog messages up to the main logger
Fix spawned item glitching for good. Hopefully...
clear requests

clear the rest once you are done with requests.
add a debug message, and an extra check .. should differentiate why this crash is happened.
move getMissingItemCount() inside the loop

start each fresh batch of crafteres with a fresh item count.
clear the crafters after calculating the max work.
rename functions, add an extra check to try to find where the extra requests are coming from.
spam the log with some debug messages.
remove debug messages again, so there is a less spammy verison sitting at top of dev.