Pre-Dial handler question

I’m messing around with a pre-dialer handler today and running into a wall.

Dial has the U option where I can execute a Gosub when the channels bridge and there I can set the variable GOSUB_RESULT to BUSY to make Dial act like the channel I called was Busy.

I want to do something similar with a Pre-Dial handler but don’t see a way I can Set a variable or return a value that will cause Dial to act like the channel I called was Busy?

Use case:
Endpoint 100 calls Extension 101

Extension 101 has a Pre-Dial Handler that checks how many calls Endpoint 101 has in progress and if it’s greater than X returns a Busy.

Dial acts like it got a Busy back from the Endpoint, Sets DIALSTATUS and continues through it’s dial-plan.

I’ve tried using the BUSY() Application inside my Pre-Dial handler.
I’ve tried sending BUSY back as a Value with Return() to be picked up in GOSUB_RETVAL
I’ve tried setting DIALSTATUS to BUSY.

Am I trying to use the wrong tool for the Job here?

You can write the code directly in the extension 101 dialplan,or did you really mean endpoint for both?