Да какая «нетривиальная», не тривиальная если только на чистом css было бы (и то решение у меня есть, но врядли рабочее, да и поддержка браузерами неважная):
.block,
.block:hover{
cursor: url(images/gradient.cur), pointer;
}
А вообще настоящее простое решение вот:
<div class="banner">
<div class="cursor-grad"></div>
....
</div>
banner - position:relative, cursor-grad - position:absolute, visability:hidden, фоном градиент пнг-шный, размеры - по размеру фона.
а дальше простой jquery:
$('.banner').on('mousemove', function(e){
$('.cursor-grad').css({
left: e.pageX - $('.banner').offset().left,
top: e.pageY - $('.banner').offset().top,
visibility: 'visible'
});
});