MRashton,
A function to mimic a button press for a specific amount of time is not available. Widget.executeActions() not being able to simulate a press and hold is a known issue and this thread discusses the issue further.
[Link: remotecentral.com]You will need different widgets, each with IR codes of longer lengths by hacking the IR code data to extend the code(1 - short, 3 - long) for each rotary direction as Widget.executeActions() cannot simulate press and hold as you would from normal button press.
For tips on how to extend IR codes, see this post.
[Link: remotecentral.com]