The first is that the FOV is infinite in range - and given the feel of the game, and the style of the maps, this is a perfectly reasonable assumption. The other is that there are never going to be huge open spaces - an assumption which is also true given the setting. So instead of working through a complicated system I just throw out a few rays and make the FOV based on them - it is a tiny bit rough around the edges but hardly noticable. My first assumption isn't that necessary, but it means one less check. The second assumtion could be fixed by increasing the number of rays. But the number I'm using at the moment looks grand.
And here's the screeny.