Zoneless is - again - orthogonal to most of this. Zoneless basically means that Angular does not instrument pretty much every async api (setTimeout, RxJS, promises and many more). Zone.js patches all of these and whenever "something happens there" (e.g. a setTimeout runs or a promise resolves) Zone tells Angular to run change detection.
With Zoneless this does not happen and Angular will only run change detection through more "normal" means, i.e. an input changed, an event happend, a signal read by a template changed (or you just tell it to via ChangeDetectorRef).
This does not change what is checked (that's what OnPush is for).
As for "another change detection mode" - sure, that could be possible. However if you write OnPush everywhere and use signals my guess is you would not see many performance gains. Reading signals is dirt cheap and so checking a view which reads a few signals is super fast.