For a register that doesn't drive anything(so it may be something like a counter I add for debug and just want to SignalTap), I have used stuff like the following without problem.
(* noprune *) reg [2:0] status_count;
This just prevents it from being synthesized out, and the register should be available pre-synthesis and post-fit STP.
For a wire, I have used (* keep *). This ensures that it is the output of a LUT and can be tapped post-fit. Wires should not need this if you are doing pre-synthesis tapping. That being said, if a wire would get synthesized out for other reasons, e.g. let's say it doesn't go anywhere, then the keep won't prevent that. You could have it drive a register with the noprune attribute.
That is what has worked for me, but I'm guessing something else is going wrong since your snippets of code seem to try most possibilities.