Today, runways are always named according to the magnetic heading. How did this practice start? When and where was the practice invented? Whose idea was it, and how did it catch on?
A pprune.org thread mentions that the UK borrowed the numbering system from the US.
I believe the magnetic headings were adopted by the RAF in the UK early in 1944 and were inspired by American practice. Prior to that, RAF runways were numbered clockwise from north.
From the Department of Commerce Appropriation Bill for 1943 on page 515 from the snippet view (unfortunately can't find a fully scanned version) there's mention of a plan based on recommendations to number the runways.
This is confirmed by Flying Magazine Jul 1943:
So the when is circa 1943, the who is US Department of Commerce. It caught on by regulation based on recommendations. Naming runways north-south or 1, 2, 3, 4 were probably very confusing as the number of users grew.