Allow longer timeout on first call.
Disable "test" functions by default.
Don't block the reader thread while the context initialises.
Use a slave thread to initialise the external function provider in advance of a connection, without blocking other startup calls.