[...] Masternode has been running ever since without any problems. No rewards though, but think niitassin is looking at that.
(Possible POS issue)
This is correct - I just checked the code because I believe it's unfair ask someone to run a masternode without compensation.
There is currently code to pay masternodes in GetProofOfStakeReward() and none in GetProofOfWorkReward(). This means that until POS is fixed, no masternodes will be paid.
Edit: Actually, looking into
spork.cpp, it looks like masternodes wouldn't be paid anyway because
CBlock::CheckBlock() in main.cpp sends IsSporkActive() the defines
SPORK_1_MASTERNODE_PAYMENTS_ENFORCEMENT_DEFAULT and
SPORK_1_MASTERNODE_PAYMENTS_ENFORCEMENT. Looking into those,
(SPORK_1_MASTERNODE_PAYMENTS_ENFORCEMENT = 10000) and (SPORK_1_MASTERNODE_PAYMENTS_ENFORCEMENT_DEFAULT = 2428537599).
Because IsSporkActive() translates the former into the latter, we're really just looking at
SPORK_1_MASTERNODE_PAYMENTS_ENFORCEMENT_DEFAULT. I think. I could be wrong.
If that is indeed the case, the wallet is comparing the current date against the "default" masternode UTC timecode to determine if masternodes should be started. Common sense says "check the comment to see what date that is". The comment suggests "2015-4-8 23:59:59 GMT". However, if you actually check the value, 2428537599 = Sun, 16 Dec 2046 01:46:39 GMT.
I don't really want to spend too much time looking into this issue, but if fixing POS doesn't fix masternodes, this is a great place to check.