if the heat works better with higher RPMs it could be a slipping water pump.
generally if you have no heat at idle, its a lack of coolant.
however, with your issues, i would be tracing everything in the cooling system. if you arent losing coolant, which would be a normal cause of your symptoms, you have issue(s) elsewhere.
you didnt mention the mileage on the truck but being a 2011, it might be time for a new water pump, thermostat, etc.