Questions prior using Craft for the first time
While I've got no expierence with ProcessWire, I'm a fairly new Craft user myself, and I have to say, it's been a breeze to work with. 

With regards to your questions:


All your separate, custom code goes into a plugin, which has to have a certain structure (can be generated for you at this site). There you can hook into events, make your own controllers for custom actions, ... 
Creating an entry from code can be done by working with it's Model/Record classes and saving it. 
There's quite some things already in Craft by default, but to handle forms, you'll either have to write your own controller action to capture it, or use a plugin, same goes for using PayPal or creating PDF's. You can also use composer packages with Craft. 


While there is a slight learning curve, mainly for plugin development (as you need to know more about Craft's internals than when just creating templates etc...), I found the community around Craft to be one of the best I ever encountered. When stuck, feel free to pose your questions here or on slack :)