I've been watching the "when" number on my wallet tonight and it is bouncing up and down as far as I can see, not sure of the exact behaviour yet, but something is definitely happening. If anyone has any ideas where this is happening in the code, or just logically what may be going on I'm sure we'd all like to hear ideas.
You are referring to normal bouncing of ''when'' number depending of the last block duration. Block time is not constant, sometime is less than 2min and sometimes is more than 2min. But average block duration is 2min. If last block time was a little longer than 2min ''when'' number will be a little higher.
Block reward change is based on block count. Every 3600 blocks we have a change of block reward, depending of averaged votes. Last block reward change was at block 97200 so you should add 3600 blocks and you will get next block reward change (at block 100800).
Bug in the wallet I have noticed is not about those little ''when'' number fluctuations it is about
completely wrong time and block count when wallet resets vote averaginig. Blockchain reseted vote averaging at block 97200 but wallet did that a whole day after (~750 blocks after) at block~97950.
This is wallet now:

Averaged votes number should be
2080 votes, we have 1520 votes until block reward change that is in ''
when: 2.1 days''. So when block reward change in 2days wallet will display 1 day until block reward change.