When the database is not available, the client will wait forever without a timeout. Specifically in fdb_future_block_until_ready(). It also seems that there is no mention of timeouts in the API documentation.
How can I set a timeout for an operation in the C API?
The timeout can be set at the transaction level using fdb_transaction_set_option(). Your future will fail (and return) when the transaction times out and the fdb_future_block_until_ready() API says you must check if the call resulted in an error every time regardless.