Can civi pre-authorise funds for events and is only charged the amount if the registered participant is a no-show?
Yes, the answer to this is - it depends on the Payment Processor that you use whether you can do this. With the CiviCRM iATS extension you could have people schedule a recurring contribution with one installment for a date in the future (perhaps the day after your event). What this will do is tokenize the credit card; on the future date the token with an amount are submitted to iATS for payment processing. So all you need to do is then make sure you cancel the recurring series ahead of the future date (for people who did show up).

We developed this for a number of reasons, including the abilty to tokenize card for $1 ahead of fundraising/silent auction events. Then on the evening of the event -> you can process the card on file for any $amount for a fast checkout from within CiviCRM (and of course send a receipt to the donor).