Added execution timeout
Execution timeout (in seconds) has been added. It is configured on a profile-by-profile basis. If execution exceeds the specified timeout, the container will return and a Result object with isTimedOut() true will be returned. This ensures there are no infinite loops that will indefinitely keep the container running and block the calling thread.