Expose the NoDataReady exception.
Change from simple "block" parameter to a "timeout" parameter that is
even more useful since it can maintain better responsiveness without
the process constantly spinning on a CPU.