It's possible you could have a callback between the two, but I don't know if it's any more clear than a PublishSubject or LiveData.
The biggest difference is because you can observe on a livedata exposed by another class, but you can't necessarily do that with delegates, unless you notify a callback inside the delegate's onChange, at least that's how I see it working.
var max: Int by Delegates.observable(0) { property, oldValue, newValue -> notifyCallback(newValue) }