Add a configurable drain timeout

- Add a drain timeout for testing purposes
- Fix the drain test to guarantee drain timeout < request timeout
- Add a testcase to verify no connections are allowed during drain

[#69785590]

Signed-off-by: Matthew Sykes <matthew.sykes@gmail.com>