user36027: My understanding is that only version 0 is defined but other versions are considered valid to allow extensions using soft forks, but are they non-standard at the moment?

user60443: See @Pieter Wuille's comment, currently all witness programs with versions other than 0 will be rejected as non-standard. See interpreter.cpp L1447
Edit: As of v0.16.2, it appears that all version bytes will at least enter the mempool, provided the rules for version 0x0 (if used) are followed. See BIP 141 - Witness Program, BIP 143 - Restrictions on Public Key Type and policy.cpp#L232
Currently, versions bytes higher than 0 will cause the VerifyWitnessProgram function to always return true (for future softfork compatibility). Currently version bytes 1-16 are reserved for future use, but, "for any version byte from 0 to 16, the script must fail if the witness program has a CastToBool value of zero."

36027: <p>My understanding is that only version 0 is defined but other versions are considered valid to allow extensions using soft forks, but are they non-standard at the moment?</p>
 60443: <p>See @Pieter Wuille's comment, currently all witness programs with versions other than <code>0</code> will be rejected as non-standard. See <a href="https://github.com/bitcoin/bitcoin/blob/master/src/script/interpreter.cpp#L1447" rel="nofollow noreferrer">interpreter.cpp L1447</a></p>

<p><strike><strong>Edit:</strong> As of <code>v0.16.2</code>, it appears that all version bytes will at least enter the mempool, provided the rules for version <code>0x0</code> (if used) are followed. See <a href="https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#witness-program" rel="nofollow noreferrer">BIP 141 - Witness Program</a>, <a href="https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki#restrictions-on-public-key-type" rel="nofollow noreferrer">BIP 143 - Restrictions on Public Key Type</a> and <a href="https://github.com/bitcoin/bitcoin/blob/0.16/src/policy/policy.cpp#L232" rel="nofollow noreferrer">policy.cpp#L232</a></strike></p>

<p>Currently, versions bytes higher than <code>0</code> will cause the <code>VerifyWitnessProgram</code> function to always return true (for future softfork compatibility). Currently version bytes <code>1-16</code> are reserved for future use, but, "for any version byte from <code>0 to 16</code>, the script must fail if the witness program has a <code>CastToBool</code> value of zero."</p>
