1. ATC cannot divert flights; that is soley the pilot's responsibility. However, if an airport authority decides that for some reason it does not want the aircraft to land, ATC may be requested to send a message to that effect. However, it's still up to the pilot.
2. The length of time aircraft are in the hold can vary enormously - maybe from 2-3 minutes right up to an hour or more. In many cases, it is not the length of time aircraft are holding which causes problems but the number in the stack. In busy terminal areas the upper levels in holding areas may not be separated from adjacent routes. Therefore, if it is expected that aircraft may be require to hold so long that the upper levels would become occupied, the aircraft which would occupy those levels will be held at high levels outside the terminal area.
There are many other factors to be considered, but that may help.