This seems to work to prevent placement on entities without preventing it from being placed on water:
railsignal = { "object-layer", "floor-layer" }
I have not gone back to 1.0 to check if it was making rail signals overlap with normal entities then too. With 1.1 there are more, separated masks, so perhaps there is a more minimal set of changes to make it work now?
Edit: Nevermind..still overlapping some entities...
It may be necessary to use the collision mask API rather than setting them to specific layers at all times / situations (startup conditions).