GNUTLS_E_INTERRUPTED is returned if the process got a signal that interrupts
blocking I/O (for wget this is SIGUSR1 and SIGHUP). If it is just *one*
signal (very likely), a successive call to gnutls_handshake() would not
return again with this value. If the process gets 'hammered' by signals, we
have a busy-loop. But with your change, the poll/wait would also immediate
return with errno=EINTR - and we have a busy-loop as well.
So from what I can judge, your change adds 'complexity' without any gain.