Suspending and reactivating the Long polling external task Http request

What is the mechanism behind in the external service task of suspending and reactivating the long polling HTTP request?

Http Request suspended based on asyncResponseTimeout mentioned in Rest API “POST /external-task/fetchAndLock” will make the Http request(client thread) into waiting state(blocking state)?

If Http request has suspended, then no response will be sent to the client until the worker finds an external task and completes it?

When an external task was created, how could be the suspended Http request will be get reactivated to process the external task?

If we set asyncResponseTimeout=10ms, then the Http request will wait for 10 ms interval and then it will start polling the external task which is created before the Http request completes the suspension period or Http request will be interrupted from suspension time, if the external task available before the Http request suspension time completes?