Hi Kisska,
It sounds like you'e doing all the right things for your boy; establishing a feeding routine, praising and rewarding him when he comes own and calling him back at night.
Punishing your cat by not letting him out may actually have the opposite effect, causing frustration and confusion for him. Cats aren't able to make delayed associations, to keeping him inside is very unlikely to teach him to come back sooner.
It may be better to change the routine/ environment, particularly with the risk of coyotes at night.
Perhaps you could try picking a consistent time before dusk, where he comes inside, is rewarded with his evening food and attention, and he then stays in until the following morning. You may want to make his evening meal particularly exciting, to encourage him to associate returning home with something really positive. It may take a few weeks to create this change in routine, but patience will pay off if you can keep up the consistency.
Depending on where you live, a catio may also be an option, so he can enjoy being outside at night without any risk of predators.