Add additional time check to reduce excessive instance clean up operations.
The reap condition gets triggered before the delay is resolved can result in constant clean up operations.
This increases the number of locks being grabbed just to check things.
A large number of processes can exit causes a large number of conditions to be triggered.
Avoid this by honoring the delay.
Only the reap gets performed if the delay is not yet expired.
Move the main instance clean up logic into a separate function `controller_thread_cleanup_perform()`.
Optimize the `while (F_false)` condition to not have a hard coded boolean in its condition.