This has to be an integration test if it's going to take 20 seconds to run.

If it takes close to 20*4=80 seconds instead of 20, that seems very extreme! But better to pass like that than to fail incorrectly...

Why increase the poll period to 100 milliseconds, from 10 milliseconds? Is that not just adding up to 190ms of unnecessary difference between actual time and limit?