Linux and Windows both ensure the release exists in parallel; a job can GET
404 (not yet created) then POST 422 (the other job won the race), leaving its
release id empty so its assets never upload. Add || true to the create and a
fallback re-fetch of the release id by tag when the create fails, so both jobs
upload reliably.