What can I do to ensure my transactions hit the blockchain as fast as possible?
Most simply, the miner who finds the next block must have your transaction in their pool, and choose to include it. Because they choose, you cannot "ensure" inclusion, only increase your chances.
In an ideal world, for maximum speed, you would peer directly with all the miners, and know their automated inclusion criteria up-front. (It's not always exclusively price)
Should I run a full node myself?
Going through infura means an extra hop between you and the miners... but maybe infura is more than one hop closer to the miners than you would be if you ran a full node. Also, nothing stops you from submitting to both infura and your locally-run full node, which would increase your chances of the transaction reaching the next miner before they find the block.
Please ignore gas price for this discussion
I don't know how you can talk about getting your transaction included quickly without discussing gas price. It's a critical component.
Are you assuming that you are paying enough that every miner will accept your transaction? (among miners who ever accept transactions) According to these current gas stats, that means at least 50 gwei, which the top percentile of miners charge.
Is 99% coverage okay? If you need 99.9% coverage of miners, you might need to collect your own stats on the gas price needed to be included.
Is there something better?
Fundamentally, you need to broadcast your transaction. If you have a good host machine, internet connection, client, and connection to prominent miners, then nothing will be faster than running your own full node.