You are interpreting "while you are bloodied" as "while you are still bloodied". You are assuming that since there is a requirement to be bloodied in the first place, that the power someone stops once no longer bloodied.
The language here is unclear and there is no explicit duration. There is only a specific "while" clause. "While" by itself does not indicate duration. It indicates a condition of when it can and cannot occur, but does not indicate when it completely stops occurring.
If it were explicit, we would not be having the discussion.
"While you are prone, you get a +2 bonus to Fort" says nothing about duration.
You are confusing the use of the word while with the use of the word when or if.
Dictionary.com:
conj.
As long as; during the time that: "It was lovely while it lasted."
Note that there is a definite ending implied to "while it lasted." It did not, however, start and stop repeatedly.
To use some C++ code:
while(bloodied)
{
Regenerate(x);
}
exit();
Once the bloodied condition is no longer true there is no way to get Regenerate(x); On the other hand if you were to write it like this:
if/when(bloodied)
{
Regenerate(x);
}
Your example would be:
When you are prone, you get a +2 bonus to Fort" says nothing about duration.
Use of the word while automatically implies "until not true".