I described here how I could workaround the same problem. But I didn’t patch hiberate-core.jar, but built the uber-jar, provided no-op bytecode provider in my app (which then overrides the hibernate-core.jar ByteBuddy implementation). Alternatively you can filter out the ByteBuddy service loader in the META-INF of the uber-jar with maven plugin. And then I used the uber-jar to build GraalVM Native Image instead of the classpath. I also used this approach when also using Spring Boot (4) with JPA (and Hibernate) on AWS Lambda and have some examples in my repo for it. The same works also without AWS Lambda.
But I’m glad that you also found the solution.
But I still think that the Hibernate’s AggregatedServiceLoader doesn’t work correctly or at least there is no clear way to explicitly configure the no-op implementation without doing dirty workarounds or magic that frameworks like Quarkus “somehow” do.