fix(numberInput): Check ValidityState when determining validity

Fixes #2144

I haven't been able to write tests for this successfully, however testing in browser this seems to work perfectly. I'm having trouble getting the ValidityState to be finished in automated tests.

It MAY be possible to do this by setting a timeout of 200ms or something, to give the DOM time to update --- But this would introduce flakiness.

If anyone has any ideas how to make this really testable, I'd love to hear em.