Locking around build_requested for race condition (AUE-382)

Lock around build requested to avoid a scenario where builds that are requested are not made.

Would especially like input from @nnutter and @tmooney
Setting `block_sleep` might be reasonable as well but not as important as `max_try`.