FE currently waits on futures serially, so if the first future in the list takes longer than the seconds we still wait until the first completes. This adds extra latency to FIRST_COMPLETED and FIRST_FAILURE wait modes and results in clearly surprising behavior i.e. first future completes in 5 minutes and second completes in 2 secs but we return from wait in 5 minutes.
See test_futures_wait.py api_function_return_when_first_completed function and api_function_return_when_first_failure function. They are testing this feature.