Dial a phone number
Check out the Term.FLTR that comes with PG/FB II. Create a window with a refCon of TERM and PG handles stuff like dialing, etc. As for the delay part, the .FLTR could easily be modified to accomodate this.
Dialing is super easy; just send "ATDT555-1212" (with the right number, of course) to the serial port. Getting a busy signal indication back requires listening to the port for a response from your modem. I've not done this, since last time I talked to a modem they didn't support it, but you might try digging in the modem "technical manual" for a clue as to what gets returned under different circumstances. I know my current (much newer than the 300-baud job I coded for) modem now "knows" when a line is busy, as opposed to just getting "no carrier" for busy/no answer/answer with no modem signal, because some software I use knows the difference. However, I'd assume it's a "nonprintable" modem response, as opposed to the "CONNECTED" of a good connection, since I see nothing "on screen" in my terminal emulator in those conditions.