"I have been running for a while", as you know implies you're still running now.
Keep in this context is synonymous with continue. It's quite difficult to use these in the same manner as be.
"I have kept running for a while" doesn't make sense. You can't use have kept to describe a continuing action.
"I keep running for a while" would be used if you were describing the event afterwards, but using the present tense. For example "I set off north at a good pace. I keep running for a while until I reach a cliff."
If you want to use keep to describe a current and ongoing action, you'll need to make a much more complicated sentence.
The closest I can think of is:
I have kept up my running for a while.
Which isn't right, because it talks about habit, rather than a current action.
A rather unpleasant way to phrase it:
I'm still keeping going with my run.
The still doesn't really mean "for a while" but it does imply some kind of stamina.
In conclusion, I wouldn't use keep, in this context, if I could avoid it.