fix: call `onerror` and provide a working `reset` when hydrating a failed boundary (#18556)