Another problem may be a bad single handle faucet at the shower or lavatory as you suggested. When they go bad, they can allow water to bypass through them from one line to the other. I'd bet on this. You can get faucet replacement parts for most faucets. Fix it yourself or call a plumber to do it. Shut off the hot and cold water stops under the sink (if there) to isolate the sink and then see if you get hot water to the toilet. If so then probably the shower faucet.