So, buried in Sean Fiene's blog about the function being introduced to O365 I found a comment that "resolved" this.
It seems the lookup function will only lookup to a number, not a string. This seems to be because there are no quotes around the filter value and therefore, the function treats it as a number. If you place quotes around the filter value named control, it must treat it literally or something like that. If I place quotes around the hard coded string, it works. This was bought up in August 2016 but seems to have been missed as I'm still experiencing the issue. Hopefully this will draw attention to it.
And in further developments, placing an extra set of quotes and concats around the named control reference makes it work with a string.
So this formula allows you to lookup on a string.
Can we get this documented if it's intended behaviour, and if it's already documented can someone point it out so I can punch myself for not being able to find it!