Two things come to mind and i’d suggest looking at using rules: instead of only as rules: are the preferred keyword now.
The documentation for only: shows the keyword as schedules not schedule as in your example.
That same issue could be the problem with the second project OR it could be expecting a schedule to trigger it not another pipeline? I haven’t tested it so not 100% certain.
Job in your project2 will run only if pipeline is triggered from that project local Schedule. When you trigger a job in another pipeline (no matter how was the pipeline in project1 triggered) the pipeline source changes to pipelines.
Sorry, I don’t use only anymore. You can try it with rules:.
Downstream pipeline is stuck also in case the user triggering it doesn’t have permissions on the downstream project. I think Developer role is minimum. I am not sure how scheduled pipeline inherit permissions and if they do or not. In case it is indeed a permission issue, you can try to use trigger token and trigger downstream pipeline using API as documented here.