if you want to have your plugin approved you should pass UserId in your timer, rather than Player Id. This prevent a scenario where a newly-joining would have his Id used in a timer's callback (and suddenly get frags, for example).
There is also
//TODO: here can be a bug when blockPenalty is on - undefined behaviour when you have killed someone of your team and then someone of oponents in less then DELAYED_RECALCULATION_TIME.
When "blockPenalty " is on; I don't get why you use a timer when someone do teamkill. Can't you simply get the player's frag and add 1 ? (I might be wrong, but I believe this would work :/)
Regarding your version's ConVar, I would remove FCVAR_REPLICATED as it can produce error in the client's console. I would also add FCVAR_DONTRECORD so that a client can't change the plugin's version in the plugin's config file.
And why use a temporary variable on L245-249 and 251 ?