Nowhere-vanishing sections of vector bundles

Let X/k be a proper variety over some field, and let \mathcal{E} be a vector bundle on X.  The functor of global sections of \mathcal{E}, i.e. the functor sending a scheme f:S \to \mathrm{Spec}\,k to the set H^0(S \times_{k} X, (f \times \mathrm{id})^{\ast} \mathcal{E}), is (representable by) a nice affine k-scheme, namely the scheme \mathcal{S}(\mathcal{E}) = \mathrm{Spec}(\mathrm{Sym}_k H^0(X,\mathcal{E})^{\vee}). Let \mathcal{S}(\mathcal{E})^{\times} \subset \mathcal{S}(\mathcal{E}) denote the subfunctor corresponding to nowhere-vanishing sections s \in H^0(S \times_k X, (f \times \mathrm{id})^{\ast} \mathcal{E}). We’d like this subfunctor to be representable by an open subscheme. How should we prove this?

Let p: \mathcal{S}(\mathcal{E}) \to \mathrm{Spec}\,k be the structure map. The identity map \mathcal{S}(\mathcal{E}) \to \mathcal{S}(\mathcal{E}) corresponds to a universal section s^{\mathrm{univ}} \in H^0(\mathcal{S}(\mathcal{E}) \times_k X, (p \times \mathrm{id})^{\ast}\mathcal{E}). Let Z\subset |\mathcal{S}(\mathcal{E}) \times_k X| denote the zero locus of s^{\mathrm{univ}}. This is a closed subset. But now we observe that the projection \pi: \mathcal{S}(\mathcal{E}) \times_k X \to \mathcal{S}(\mathcal{E}) is proper, hence universally closed, and so |\pi|(Z) is a closed subset of |\mathcal{S}(\mathcal{E})|.  One then checks directly that \mathcal{S}(\mathcal{E})^{\times} is the open subscheme corresponding to the open subset |\mathcal{S}(\mathcal{E})| \smallsetminus |\pi|(Z), so we win.

I guess this sort of thing is child’s play for an experienced algebraic geometer, and indeed it took Johan about 0.026 seconds to suggest that one should try to argue using the universal section.  I only cared about the above problem, though, as a toy model for the same question in the setting of a vector bundle \mathcal{E} over a relative Fargues-Fontaine curve \mathcal{X}_S. In this situation, \mathcal{S}(\mathcal{E}) is a diamond over S^\lozenge, cf. Theorem 22.5 here, but it turns out the above argument still works after some minor changes.