there should always be a method that does not timeout ... this PR should provide two version of execute (one with timeout and one without, which determines which of the two await methods is used) ... the tests can then choose which execute method to use ... this will result in more readable code because it is clear from the test that the execute method may (or may not) timeout 