I don't open the client often and don't leave it open long
This may be part of your problem.
In the wallet click Help->Debug Window, then select the Console tab.
There is a command you'll want to use to query your client for staking knowledge; "getstakinginfo".
Type this into the wallet and you'll get something similar to the following:
{
"enabled" : true,
"staking" : false,
"errors" : "",
"currentblocksize" : 0,
"currentblocktx" : 0,
"pooledtx" : 0,
"difficulty" : x,
"search-interval" : 0,
"weight" : x,
"netstakeweight" : x,
"expectedtime" : 0
}
Note that the wallet is not going to stake if it is not either unlocked in one of two ways - completely, or "for staking only". You can select either option when unlocking the wallet in the Settings->Unlock Wallet section (see the checkbox for "staking only").
If you run getstakinginfo and the "staking" line changes to true then you are on the right track; expected time will be expected time to stake and is provided in seconds (can check to confirm).
Good luck!