A column arrives as strings, some of which aren't valid numbers (e.g. ['1', '2', 'x']). Convert the list to numeric, turning unparseable values into None, and also report how many failed.
Given values: list[str], return a tuple (numbers, fail_count) where numbers is a list of floats with None for the failures.