The fix was to use:
$json = @{"schemaVersion"=1; "label"="coverage"; "message"="${{ env.COVERAGE }}%"; "color"="green"} | ConvertTo-Json
instead.
For any reason, Github Actions does not pick up "$env:COVERAGE%". But it does with "${{ env.COVERAGE }}%" here.