I agree on the list approach. Keeping a list of x,y positions of tiles that are available to claim makes sense to me.
To find the nearest tile without resorting to sprites, you can use the distance expression. You'll have to go through the whole list though to find the nearest but I think "pick nearest sprite" doesn't really do anything different to that. So you would go through the whole list, store the distances of each and then use the one with the smallest distance.
But realistically, there is nothing really wrong with just using invisible helper sprites either... It's a functional solution with little to think about and probably already optimized to run as fast as possible. Many roads lead to rome.