Regarding why JSSE is not offering EMS in the ClientHello, here is the explanation.
When FIPS-mode is turned on, the Red Hat Build of OpenJDK ensures all the cryptographic primitives come from the SunPKCS11 security provider, configured with NSS as its PKCS #11 back-end. This is a FIPS requirement, since NSS acts as the cryptographic module, subject to the FIPS-validation process. Even though the EMS extension is implemented in the SunJSSE provider, it requires a specific key-derivation primitive to be available through the SunPKCS11-NSS-FIPS provider. Given this primitive is not currently available, SunJSSE automatically disables the extension.
Why is it not available? Although an NSS vendor-specific mechanism exists, this hasn't been implemented in SunPKCS11 due to the lack of a standard PKCS #11 way of doing it. This is expected to be fixed in PKCS #11 v3.2, and we will be able to implement the required SunPKCS11 enhancement allowing the support of EMS in FIPS-mode (when that version of the standard is released).