It sounds like a pretty straightforward script and it should be very easy to implement. For reference, download the Advanced Bash Scripting Guide
(scroll down a little bit and it's there), it's very useful.
<commands for uploading the firmware>
/etc/init.d/pppd start # Or whatever the PPPd script is called
I don't think you would need to use a "sleep 20" line after the firmware is uploaded - the script executes one line at a time so PPPd won't be launched until the prior command (the upload) is done. You could also some simple error checking and reporting with the script.